mcpField
B
Building MCP Servers: Part 1 — Getting Started with Resources

Building MCP Servers: Part 1 — Getting Started with Resources

本地服务
github.com/cycle-sync-ai开发工具078 周前更新

关于 Building MCP Servers: Part 1 — Getting Started with Resources

这是一篇面向 MCP 开发者的入门教程,介绍如何用 Node.js、TypeScript 和 @modelcontextprotocol/sdk 构建 MCP 服务。重点是通过只读资源向 LLM 提供文件、数据库或 API 内容,并说明后续可扩展到工具。

主要功能

  1. 01MCP 与资源概念介绍
  2. 02Node.js 和 TypeScript 项目初始化
  3. 03定义带 URI 与元数据的只读资源
  4. 04文档、日志和客户数据示例

适用场景

  1. 01为 LLM 提供文档或指南
  2. 02通过资源呈现日志与错误信息
  3. 03向模型开放客户数据摘要

MCP 相关

教程展示如何使用 @modelcontextprotocol/sdk 构建 MCP 服务,并通过资源向 MCP 客户端暴露只读内容;也简要介绍 MCP 工具。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

构建 MCP 服务:第 1 部分 — 从资源入门

本教程将带你设置一个基础 MCP(Model Context Protocol)服务,向 Claude 等大语言模型(LLM)提供只读资源。你将了解 MCP 是什么、资源有何用处,以及如何使用 @modelcontextprotocol/sdk 初始化 Node.js/TypeScript 项目。

目录

什么是 Model Context Protocol?

Model Context Protocol(MCP)是一种标准化接口,支持大模型安全地与外部数据和服务交互。借助 MCP,你可以以受控的方式向 AI 模型提供文件、数据库、API 等内容。

什么是 MCP 资源?

资源是通过唯一 URI 提供内容(文本或二进制数据)的只读端点。例如:

  • file:///path/to/file.txt
  • database://users/123
  • api://weather/latest

每个资源都有显示名称和 MIME 类型等元数据。

为什么使用资源?

资源支持大模型:

  • 读取文件和数据库
  • 执行命令
  • 访问 API
  • 与本地工具交互

所有交互都需要用户明确授权,从而确保安全性和可审计性。

示例服务

文档服务

提供你的文档:

docs://api/reference     → API documentation
docs://guides/getting-started  → User guides
日志分析服务

提供系统日志:

logs://system/today      → Today's logs
logs://errors/recent     → Recent error messages
客户数据服务

提供客户洞察:

customers://profiles/summary   → Customer overview
customers://feedback/recent    → Latest feedback

开始使用

前提条件
  • Node.js(>= 16)
  • npm(>= 8)
  • TypeScript
安装
mkdir hello-mcp
cd hello-mcp
npm init -y
npm install @modelcontextprotocol/sdk
npm install -D typescript @types/node
项目设置
  1. 更新 package.json:

    {
      "name": "hello-mcp",
      "version": "1.0.0",
      "type": "module",
      "scripts": {
        "build": "tsc",
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "dependencies": {
        "@modelcontextprotocol/sdk": "^1.1.0"
      },
      "devDependencies": {
        "typescript": "^5.7.2",
        "@types/node": "^22.10.5"
      }
    }
    
  2. 创建 tsconfig.json:

    {
      "compilerOptions": {
        "target": "ES2022",
        "module": "Node16",
        "moduleResolution": "Node16",
        "outDir": "./build",
        "rootDir": "./src",
        "strict": true,
        "esModuleInterop": true,
        "skipLibCheck": true,
        "forceConsistentCasingInFileNames": true
      },
      "include": ["src/**/*"]
    }
    
  3. 创建 src/ 目录,然后开始编写 MCP 服务。

后续步骤

请查看第 2 部分,了解如何配置传输方式和高级功能。

MCP 工具(动态操作)

MCP 工具(也称为动态操作)可让你定义自定义函数,供大模型在会话期间调用,从而将 MCP 的能力扩展到静态资源之外。

工具与提示词

方面MCP 工具提示词
能力执行代码和操作静态自然语言
安全性受控且可审计不产生外部影响
灵活性高(自定义逻辑)仅限于推理

完成我们的问候服务

下面是一个简单的示例,展示如何创建一个提供问候资源的服务:

import { ResourceServer } from "@modelcontextprotocol/sdk";

const server = new ResourceServer({ port: 3000 });

server.addResource({
  uri: "greeting://hello",
  displayName: "Greeting Resource",
  fn: async (req) => {
    const name = req.query.name || "World";
    return `Hello, ${name}!`;
  },
});

server.listen(() => console.log("Greeting server running on port 3000"));

来源与延伸阅读

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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