MCP服务器

该项目展示了共享单个Model Context Protocol (MCP)服务器实例与运行多个专用实例的效率对比,使用了一个节日主题的“圣诞老人工作坊库存”示例,基于Python的轻量级FastMCP框架构建。

  • by pt247
  • HTML
  • 本地部署
  • 更新于
在 GitHub 查看 pt247/santas-workshop-inventory

使用说明

圣诞老人车间库存MCP服务器

该项目展示了共享单个模型上下文协议(MCP)服务器实例与运行多个专用实例的效率。它使用了一个节日的“圣诞老人工作室清单”主题,该主题是用Python中的轻量级FastMCP框架构建的。

项目结构

  • README.md:这个文件。
  • workshop_server.py:FastMCP服务器逻辑和工具。
  • requirements.txt:Python依赖关系。

入门指南

先决条件

  • Python 3.10+
  • uv 包管理器

1.克隆存储库

git clone https://github.com/<your-org>/santas-workshop-inventory.git
cd santas-workshop-inventory

2.创建虚拟环境(可选但推荐)

uv venv
source .venv/bin/activate

3.安装依赖项

uv pip install -r requirements.txt

4.运行MCP服务器

服务器使用FastMCP的默认STDIO传输。在本地启动它并与您的MCP兼容客户端连接:

python workshop_server.py

可用工具

MCP服务器公开了这些工具(请参见 workshop_server.py 详细信息):

  • get_toy_stock(toy_name):获取玩具的当前库存和生产数量。
  • produce_toys(toy_name, quantity):模拟生产玩具并更新库存。
  • 资源 inventory://all_stock:返回完整的库存列表。

演示幻灯片

  1. 安装dev-extra(包括Reveal.js幻灯片的Jupyter/nbconvert):
    uv pip install -r requirements-dev.txt
    
    或与 pip:
    pip install -r requirements-dev.txt
    
  2. 将甲板用作滑梯:
    jupyter nbconvert --to slides santas_workshop_slides.ipynb --post serve
    
    这将启动一个本地服务器并打开Reveal.js幻灯片。您还可以在Jupyter中打开笔记本并使用 视图>单元格工具栏>幻灯片 调整滑动中断。

与Codex一起使用

  • Codex启动自己的实例(每个会话一个)
    在Codex配置中添加条目(~/.codex/config.toml)因此,每个会话都会启动一个新的STDIO服务器:

    [mcp_servers."santas-workshop-inventory"]
    command = "/Users/prashant/code/santas-workshop-inventory/.venv/bin/python"
    args = ["workshop_server.py"]
    cwd = "/Users/prashant/code/santas-workshop-inventory"
    transport = "stdio"
    
  • 为所有Codex会话重用单个共享服务器
    使用HTTP传输启动服务器一次,然后将Codex指向它:

    cd /Users/prashant/code/santas-workshop-inventory
    . .venv/bin/activate
    python run_http_server.py --host 127.0.0.1 --port 8765 --path /mcp
    

    更新Codex配置以重用该服务器(注意 /mcp 路径):

    [mcp_servers."santas-workshop-inventory"]
    transport = "http"
    url = "http://127.0.0.1:8765/mcp"
    

    如果你喜欢另一条路,请通过 --path /your-path 并将其镜像到 url 上面。