npcpy MCP 服务端

使用说明内容(Markdown格式)

  • 项目简介

    • npcpy 中的 MCP 服务端实现旨在为 LLM 客户端提供标准化的上下文服务能力,核心在于暴露、注册并管理可执行的 Tools、Resources 以及 Prompts 模板,方便客户端通过 MCP 协议获取、调用工具以及渲染提示模板。
  • 主要功能点

    • 资源与工具托管:可注册服务器上的工具函数,以及资源数据,供 MCP 客户端查询与调用。
    • 工具注册与执行:支持通过 MCP 服务器注册工具,客户端可发现并调用这些工具以扩展 LLM 的能力。
    • Prompts 定义与渲染:支持基于 Prompts 的模板渲染,帮助构建一致的对话上下文和交互模式。
    • JSON-RPC 风格通信:服务器以标准化的 JSON-RPC/REST 风格接口与 MCP 客户端交互,返回工具描述、调用结果等。
    • 会话与能力声明:服务器端承担会话上下文管理与能力声明,便于客户端了解可用能力。
    • 多传输协议支持:理论上可通过 StdIO、SSE、WebSocket 等不同通道传输数据,以适配不同客户端场景。
    • 会话管理与服务器控制:提供对 MCP 服务器进程的启动、停止、查询等操作,便于集中治理。
  • 安装步骤

    • 在 Python 环境中获取代码并安装依赖(npcpy 及相关依赖库,包含 mcp、LiteLLM、Flask 等)。
    • 启动 MCP 服务端所需的脚本与配置,确保服务器具备对 MCP 客户端的服务能力。
    • 如需并发运行多个 MCP 服务器,可结合提供的 MCPServerManager 管理器进行进程化控制。
  • 服务器配置(请按照 MCP 客户端需求提供 JSON 配置,示例仅作说明,不含代码块)

    • server_name: 自定义 MCP 服务器名称,用于标识与引用
    • command: 启动 MCP 服务器所使用的命令
    • args: 启动命令的参数数组
    • transport: 首选传输协议(如 stdio、sse、websocket,按实际部署选择)
    • description: 该 MCP 服务器的描述性信息,便于客户端理解能力范围
    • tools: 服务器对外暴露的工具集合(如工具名称、描述、输入参数等,客户端可据此进行调用)
    • resources: 资源集合(数据源、数据模型等,客户端可按需读取)
    • prompts: Prompts 模板集合及其渲染配置信息

    具体示例(JSON 格式描述,不包含可执行代码): { "server_name": "MyToolsServer", "command": "python", "args": ["./my_mcp_server.py"], "transport": "stdio", "description": "Fast MCP server 提供数据查询与工具调用能力", "tools": [ {"name": "search_database", "description": "在数据库中搜索记录", "inputs": [{"name": "query", "type": "string"}]}, {"name": "send_notification", "description": "向指定频道发送通知", "inputs": [{"name": "message", "type": "string"}, {"name": "channel", "type": "string", "default": "general"}]} ], "resources": [ {"name": "customers", "type": "dataset", "description": "示例客户数据集"} ], "prompts": [ {"name": "default_prompt", "template": "...", "description": "默认对话上下文模板"} ] }

  • 基本使用方法

    • 在服务器端准备好 MCP 服务脚本与配置,确保服务器可从指定路径启动。
    • 客户端需要将上述配置以 JSON 形式提供,包含 server_name、command、args 等字段。
    • 启动 MCP 服务端后,客户端即可通过 MCP 客户端接口向该服务器注册工具、查询资源并执行工具调用。
    • 客户端通过工具调用完成后,服务器返回执行结果、状态或后续上下文,客户端据此继续对话。
  • 服务器的基本操作要点

    • 通过服务器提供的 API,客户端可查询可用工具、发起工具调用、获取 Tool 的定义以及执行结果。
    • 服务器需要对工具调用进行安全审计、权限控制与输入校验,确保对外暴露的能力在授权范围内。
    • 支持多种传输协议以兼容不同的客户端实现,例如本地进程间通信(stdio)或网络传输(WebSocket/SSE)。
  • 使用注意

    • MCP 客户端需要的核心信息包含服务器的启动命令及参数(command、args),以建立连接并获取工具 schemas、tool_map 等信息。
    • 配置中的 server_name、command、args 应与实际存在的 MCP 服务器脚本及路径保持一致,避免无法连接。

服务器信息