MCP聊天
MCP Chat是一个命令行界面应用程序,支持与AI模型的交互式聊天功能。此版本最初设计为与Anthropic API一起使用,现已扩展为支持本地运行的LLM以进行实验和离线使用。该应用程序通过MCP(模型控制协议)架构支持文档检索、基于命令的提示和可扩展的工具集成。本练习基于Coursera课程中的代码 模型上下文协议简介.
______________________________________________________________________
要设置项目,首先确保您安装了Python 3.9+。可选地,如果你使用的是Node.js和npm uv Mac或Windows上的软件包。创建或编辑 .env 如果您计划使用Anthropic API密钥,请将其包含在项目根目录中:
ANTHROPIC_API_KEY=""接下来,安装依赖项。你可以使用 uv,这是一个快速的Python包安装程序和解析器。用以下方式安装 pip install uv然后创建并激活一个虚拟环境 uv venv 和 source .venv/bin/activate (在Windows上: .venv\Scripts\activate).安装所有依赖项 uv pip install -e . 并使用以下命令运行项目 uv run main.py.如果 uv run 抱怨 npx 缺少,安装Node.js和npm并重新启动终端。或者,您可以在没有设置的情况下进行设置 uv 通过创建和激活虚拟环境(python -m venv .venv 和 source .venv/bin/activate),使用手动安装依赖项 pip install anthropic python-dotenv prompt-toolkit "mcp[cli]==1.8.0" gpt4all,并使用以下方式运行项目 python main.py.
此项目现在支持通过GPT4All使用本地LLM。放置您的模型(例如。, Meta-Llama-3-8B-Instruct.Q4_0.gguf)在项目文件夹中,并确保 core/local_llm.py 指向正确的模型路径。聊天界面无需使用Anthropic API密钥即可工作。用它运行 uv run main.py 或 python main.py.
跑步后,只需键入您的信息,然后按Enter键与模特聊天。您可以随时通过键入以下命令停止会话 exit, quit,或 stop,这将优雅地终止会话。您可以使用以下命令在查询中包含文档内容 @ 符号后跟文档ID,例如: > Tell me about @deposition.md.命令使用 / 前缀,例如: > /summarize deposition.md。命令和文档ID支持使用Tab键自动完成。
要添加新文档,请编辑 mcp_server.py 文件并将其添加到 docs 字典,例如:
docs = {
"report.pdf": "Contents of the report...",
"deposition.md": "Contents of the deposition..."
}您可以使用以下工具实施新的MCP工具 @mcp.tool 装饰师。例如:
@mcp.tool(
name="read_doc_contents",
description="Reads the contents of a document and returns it as a string."
)
def read_document(
doc_id: str = Field(description="The ID of the document, e.g., 'report.pdf'")
):
if doc_id not in docs:
raise ValueError(f"Document '{doc_id}' not found.")
return docs[doc_id]这 Field 函数用于提供有关预期输入的元数据,如描述,供界面和自动补全使用,而实际输入将是用户提供的字符串。
对于开发,请在中完成任何TODO mcp_server.py 并在中实现缺失的功能 mcp_client.py。默认情况下不执行林惇和类型检查,但您可以选择添加 flake8 或 mypy 静态分析: pip install flake8 mypy 紧随其后 flake8 . 和 mypy ..
要保存您的工作并将其推送到GitHub,请使用以下命令初始化Git存储库 git init,添加文件 git add .,并承诺 git commit -m "Initial commit with local LLM support".在GitHub上创建存储库(通过网络或 gh repo create my-mcp-chat --public)并推动您的更改: git branch -M main, git remote add origin git@github.com:YOUR_USERNAME/my-mcp-chat.git,以及 git push -u origin main.
该项目允许通过Anthropic在线和离线与本地模型进行人工智能交互实验,支持文档检索、命令执行和工具扩展,并为进一步的MCP开发奠定了基础。
