mcpField
M
MCP Service Framework

MCP Service Framework

本地服务
github.com/Hiohk媒体与设计063 周前更新

关于 MCP Service Framework

MCP Service Framework 是用于构建可扩展 MCP 服务的框架,包含天气服务示例和智能对话管道。它面向需要连接工具服务并处理多轮对话的开发者。

主要功能

  1. 01动态注册和调用工具服务
  2. 02上下文感知的多轮对话
  3. 03自动工具调用与结果整合
  4. 04请求重试、错误处理和健康监控

适用场景

  1. 01构建基于 MCP 的工具服务
  2. 02将天气工具接入对话流程
  3. 03管理含工具调用的多轮会话

MCP 相关

实现 MCP Server/Client 通信模型,并通过标准化工具接口连接客户端与可扩展的工具服务。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

来自项目 README

MCP Service Framework

一个基于MCP(Model Context Protocol)协议的可扩展服务框架,提供标准化的工具调用接口和AI集成能力。包含基础服务架构、天气服务实现示例和智能对话处理管道。前端效果如下图所示:

alt text

核心特性

  • MCP协议实现:完整支持MCP协议的Server/Client通信模型
  • 服务热插拔:支持动态注册和调用各类工具服务
  • 智能对话管道:
    • 上下文感知的对话管理
    • 自动工具调用与结果整合
    • 多轮对话状态保持
  • 高可用设计:
    • 请求重试机制(默认3次)
    • 错误统一处理
    • 服务健康监控

技术架构

├── MCP Client (Express Server)
│   ├── 会话管理
│   ├── AI集成(DeepSeek)
│   ├── 工具调用路由
│   └── 服务连接器
│
└── MCP Server (Weather Service Example)
    ├── 工具注册
    ├── 参数校验
    ├── 天气API集成
    └── 数据标准化

快速开始

环境准备
npm install @modelcontextprotocol/sdk express dotenv
配置环境变量
# 服务配置
PORT=3000
AI_MODEL_NAME=xxxxxx

# DeepSeek API
DEEPSEEK_API_BASE_URL=https://api.deepseek.com/v1/
DEEPSEEK_API_ENDPOINT=/chat/completions
DEEPSEEK_API_KEY=your_api_key

# 天气服务API
WEATHER_API_KEY=your_weather_api_key
启动服务
# 启动主服务
npm run start:prod

接口示例

聊天请求:

POST /chat
Content-Type: application/json

{
  "message": "北京今天天气如何?",
  "sessionId": "user123"
}

响应示例:

{
  "status": "success",
  "response": {
    "text": "北京当前温度28℃,晴,西北风3级",
    "reasoning": "",
    "toolResults": [{
      "toolName": "get_forecast",
      "result": "温度:28℃ 风速:20km/h..."
    }]
  }
}

服务扩展指南

创建新MCP服务
  1. 服务模板:
// services/customService.js
import { Server } from "@modelcontextprotocol/sdk/server";

export function createCustomService() {
  const server = new Server({/* 服务元数据 */});

  // 工具注册
  server.setRequestHandler(ListToolsRequestSchema, () => ({
    tools: [{
      name: "custom_tool",
      description: "工具描述",
      inputSchema: {/* JSON Schema */}
    }]
  }));

  // 工具实现
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
    // 业务逻辑实现
    return { content: [{ type: "text", text: "处理结果" }] };
  });

  return { run: async () => {/* 启动逻辑 */} };
}
  1. 服务集成:
// 在client.js中扩展
async function initializeServices() {
  // 添加新服务连接
  const customTransport = new StdioClientTransport({
    command: "node",
    args: ["./services/customService.js"]
  });
  await customClient.connect(customTransport);
}

开发规范

  1. 工具设计原则:

    • 输入输出遵循JSON Schema
    • 错误代码使用标准MCP错误码
    • 包含完整的参数校验
  2. 服务通信:

    • 使用Stdio传输协议
    • 服务版本兼容性管理
    • 心跳检测机制
  3. 性能要求:

    • 单次工具调用响应时间 < 2s
    • 错误重试间隔:500ms, 1000ms, 1500ms
    • 最大上下文长度:5轮对话

演进路线

  1. 服务发现机制
  2. 负载均衡支持
  3. 服务监控仪表盘
  4. 协议缓冲支持

评论

支持 Markdown

第一次接触 MCP?

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

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