模型上下文协议演示服务器

一组用于展示MCP(模型上下文协议)原理的演示服务器,支持本地运行和在线部署。

  • by HerveMignot
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 HerveMignot/mcp-demos

使用说明

MCP服务器演示

此存储库包含一组MCP(模型上下文协议)服务器,用于演示MCP的原理。这些服务器可以在本地运行或在线部署。

服务器

这 servers 文件夹包含以下演示服务器:

示例演示

一个简单的MCP服务器 hello 工具。

要运行此服务器,请执行以下操作:

cd servers/sample-demo
fastmcp run server.py

备件零售商

一个更复杂的MCP服务器,模拟备件零售商。它具有检查可用性、获取零件详细信息和订购零件的工具。

要运行此服务器,请执行以下操作:

cd servers/spare-parts-retailer
fastmcp run server.py

使用MCP检查器进行调试

FastMPC附带了MCP检查器工具:一个允许测试MCP服务器的Web应用程序。

按照提供的说明使用此web应用程序(使用“连接”按钮与MCP服务器讨论)。

cd servers/spare-parts-retailer
fastmcp dev server.py

PS:一定要使用 server.py 而不是 .\\server.py 在Windows上。

使用语义内核聊天客户端进行测试

这 tools 文件夹包含聊天客户端(sk_chat_client.py)使用 微软语义内核 与MCP服务器交互。

客户端是通过作为命令行参数传递的JSON文件配置的,它可以连接到本地(stdio)远程(http)MCP服务器。

先决条件

在运行客户端之前,您需要创建一个 .env 文件在 tools 包含Azure OpenAI凭据的目录:

AZURE_OPENAI_API_KEY="your_api_key"
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME="your_deployment_name"
AZURE_OPENAI_ENDPOINT="your_endpoint"
AZURE_OPENAI_API_VERSION="your_api_version"

配置

聊天客户端使用JSON配置文件来设置MCP插件和聊天代理。这 type 现场 mcp_plugin 部分确定是否连接到本地服务器(stdio)或远程(http).

示例配置文件在 tools 目录:

  • agent_config_stdio.json:作为子进程连接到本地服务器。

    {
      "mcp_plugin": {
        "type": "stdio",
        "name": "SparePartsRetailer",
        "command": "fastmcp",
        "args": ["run", "servers/spare-parts-retailer/server.py"]
      },
      "chat_agent": {
        "name": "CatalogAgent",
        "instructions": "Answer questions about Spare Part Availability."
      }
    }
    
  • agent_config_http.json:通过HTTP连接到远程服务器。

    {
      "mcp_plugin": {
        "type": "http",
        "name": "RemoteServer",
        "url": "http://localhost:8000/mcp"
      },
      "chat_agent": {
        "name": "RemoteAgent",
        "instructions": "Interact with the remote server."
      }
    }
    

运行客户端

要运行聊天客户端,请从存储库的根目录执行以下命令,并将路径传递到所需的配置文件。

要连接到本地服务器(stdio),请执行以下操作:

python tools/sk_chat_client.py --config tools/agent_config_stdio.json

要连接到远程服务器(http):

python tools/sk_chat_client.py --config tools/agent_config_http.json