MCP聊天
MCP Chat是一个命令行应用程序,通过以下方式与LLM聊天 开放路由 并扩展了模型 MCP(模型上下文协议) 工具、资源和提示。堆栈展示了最小 MCP主机 (CLI+模型循环) MCP客户端 (stdio),以及 MCP服务器 (FastMCP)协同工作。
如何学习这个代码库
使用此顺序,以便概念在运行代码中保持基础,注释与仓库保持同步。
1.先阅读笔记(概念+图表)
notes/basics.md--主机、客户端、服务器;工具、资源、提示按顺序排列;stdio心理模型;这个仓库如何映射到每个部分。notes/advanced.md--JSON-RPC消息类别、流式HTTP/SSE、负载平衡和stateless/json_response, 采样、记录和进度, 根;以下所有内容的数字索引notes/images/.
当一个部分链接出来时,并行浏览官方文档: MCP架构, 介绍, 规格.
2.运行应用程序,然后按文件顺序读取根项目
- 完成 先决条件 和 设置 下面,然后运行
uv run main.py(或python main.py). - 尝试 用法:普通聊天,
@document提及(资源),/command通过模型,用户可以查看流程(提示)和工具使用情况。 - 自上而下跟踪执行情况:
- main.py --产卵 MCPClient,构建 CliChat / CliApp,CLI参数中的可选额外服务器。 - mcp_client.py --stdio传输, initialize, list_tools, call_tool、资源、提示。 - mcp_server.py --FastMCP:工具(read_doc_contents, edit_document),资源(docs://…),提示(format). - core/chat.py + core/tools.py --聚合OpenRouter的MCP工具并运行工具调用循环。 - core/cli_chat.py — @ 资源注入和 / 提示命令。 - core/openrouter.py, core/cli.py, core/cli_chat.py -CLI和API接线。
3.先进的传输和服务器用户体验(mcp-advanced/)
根应用程序使用 标准.为 可流式传输的HTTP,服务器中的日志记录/进度,以及类似的标志 stateless_http / json_response,打开 mcp-advanced/README.md,跑 mcp-advanced/main.py,并调和你所看到的 第2节 的 notes/advanced.md.
4.有意延伸
- 新文档或工具: 开始于
mcp_server.py;确认发现mcp_client.py或检查员。 - 主机行为:
core/cli_chat.py(提及、斜线命令)和core/chat.py(模型+工具)。 - 第二台MCP服务器: 将另一个脚本作为CLI参数传递给
main.py并了解如何clients已建成。
学习资源
先决条件
- Python 3.10+(参见
pyproject.toml) - OpenRouter API密钥和选定的模型id
设置
步骤1:配置环境变量
创建或编辑 .env 在项目根目录中:
OPENROUTER_API_KEY="" # your OpenRouter API key
OPENROUTER_MODEL="" # e.g. anthropic/claude-3.5-sonnet (see OpenRouter model list)
# Optional: USE_UV=1 makes main.py spawn the server with `uv run mcp_server.py`步骤2:安装依赖项
选项1:uv(推荐)
紫外线 是一个快速的Python包安装程序和解析器。
- 如果需要,安装紫外线:
pip install uv - 创建并激活虚拟环境:
uv venv
source .venv/bin/activate # Windows: .venv\Scripts\activate- 安装并运行:
uv pip install -e .
uv run main.py选项2:pip
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install anthropic python-dotenv prompt-toolkit "mcp[cli]==1.8.0"
python main.py用法
基本交互
键入信息,然后按Enter键与模特聊天。
文档检索(资源通过 @)
包含服务器目录中的文档id:
> Tell me about @deposition.md命令(通过以下方式提示 /)
按名称运行服务器定义的提示(选项卡完成):
> /format deposition.md发展
添加新文档
编辑 docs 字典在 mcp_server.py.
实施或扩展MCP行为
- 服务器界面:工具、资源、提示
mcp_server.py. - 客户端/会话助手:
mcp_client.py. - 主机集成:
core/chat.py,core/tools.py,core/cli_chat.py.
敲击和打字
此仓库中还没有共享的lint或类型检查任务;如果你想要更严格的CI,可以添加它们。
