mcpField
W
What is MCP?

What is MCP?

本地服务
github.com/Siratul804开发工具082 周前更新

关于 What is MCP?

这是一个基于 Node.js 和 TypeScript 的 MCP 服务示例,面向学习如何为大模型应用提供数据与操作的开发者。它展示资源、工具和可复用提示词的定义方式。

主要功能

  1. 01通过资源提供数据
  2. 02通过工具执行操作
  3. 03定义可复用提示词

适用场景

  1. 01学习 MCP 服务的基本模式
  2. 02试验资源、工具和提示词

MCP 相关

该示例将资源、工具和提示词作为 MCP 服务能力提供给 MCP 客户端。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

使用 Node.js 构建 MCP TypeScript 服务

什么是 MCP?

Model Context Protocol (MCP) 可让你构建以安全、标准化的方式向大模型应用公开数据和功能的服务。你可以把它看作专为大模型交互设计的 Web API。MCP 服务可以:

  • 通过资源公开数据(可以把它们看作 GET 端点;用于将信息加载到大模型的上下文中)
  • 通过工具提供功能(可以把它们看作 POST 端点;用于执行代码或以其他方式产生副作用)
  • 通过提示词定义交互模式(用于大模型交互的可复用模板)
  • 以及更多!

资源

资源是向大模型公开数据的方式。它们类似于 REST API 中的 GET 端点——提供数据,但不应执行大量计算或产生副作用:

// Static resource
server.resource(
  "config",
  "config://app",
  async (uri) => ({
    contents: [{
      uri: uri.href,
      text: "App configuration here"
    }]
  })
);

// Dynamic resource with parameters
server.resource(
  "user-profile",
  new ResourceTemplate("users://{userId}/profile", { list: undefined }),
  async (uri, { userId }) => ({
    contents: [{
      uri: uri.href,
      text: `Profile data for user ${userId}`
    }]
  })
);

工具

工具让大模型能够通过你的服务执行操作。与资源不同,工具通常需要执行计算并产生副作用:

// Simple tool with parameters
server.tool(
  "calculate-bmi",
  {
    weightKg: z.number(),
    heightM: z.number()
  },
  async ({ weightKg, heightM }) => ({
    content: [{
      type: "text",
      text: String(weightKg / (heightM * heightM))
    }]
  })
);

// Async tool with external API call
server.tool(
  "fetch-weather",
  { city: z.string() },
  async ({ city }) => {
    const response = await fetch(`https://api.weather.com/${city}`);
    const data = await response.text();
    return {
      content: [{ type: "text", text: data }]
    };
  }
);

提示词

提示词是可复用的模板,可帮助大模型有效地与你的服务交互:

server.prompt(
  "review-code",
  { code: z.string() },
  ({ code }) => ({
    messages: [{
      role: "user",
      content: {
        type: "text",
        text: `Please review this code:\n\n${code}`
      }
    }]
  })
);

贡献

欢迎随时贡献!

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。