simonw/llm-mcp-client

GitHub: simonw/llm-mcp-client

该插件让 LLM 命令行工具能够自动发现并以原生工具调用的方式使用任意 MCP 服务器提供的工具,简化了大语言模型与外部工具服务的集成流程。

Stars: 0 | Forks: 0

# llm-mcp-client [![PyPI](https://img.shields.io/pypi/v/llm-mcp-client.svg)](https://pypi.org/project/llm-mcp-client/) [![更新日志](https://img.shields.io/github/v/release/simonw/llm-mcp-client?include_prereleases&label=changelog)](https://github.com/simonw/llm-mcp-client/releases) [![测试](https://static.pigsec.cn/wp-content/uploads/repos/cas/ce/ce733292a922c08274cf5a2096f8fa4cf01023bfa51a36ef6beecaaef371a9d9.svg)](https://github.com/simonw/llm-mcp-client/actions/workflows/test.yml) [![许可证](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/llm-mcp-client/blob/main/LICENSE) 将 MCP 服务器的工具作为 LLM 工具进行访问 ## 安装 将此插件安装在 [LLM](https://llm.datasette.io/) 所在的相同环境中。 ``` llm install llm-mcp-client ``` ## 用法 此插件注册了一个名为 `MCP` 的工具箱,它会连接到 [MCP](https://modelcontextprotocol.io/) 服务器,发现其提供的工具,并将它们作为 LLM 工具提供使用。 将 MCP 服务器的 URL 传递给该工具箱: ``` llm -T 'MCP("https://example.com/mcp")' 'Ask something that needs a tool' --td ``` `--td` 选项会在工具执行时显示其调用的详细信息。 它在 `llm chat` 中同样适用: ``` llm chat -T 'MCP("https://example.com/mcp")' ``` ## 模板 你可以像这样将 MCP 保存为一个命名的 [LLM 模板](https://llm.datasette.io/en/latest/templates.html): ``` llm -T 'MCP("https://datasette.simonwillison.net/-/mcp")' --save blog ``` 现在,你无需指定完整的工具定义即可进行查询,如下所示: ``` llm -t blog 'count entries and notes' ``` ### 协议模式 默认情况下,客户端会自动协商协议。你也可以使用 `mode=` 参数强制指定特定模式: ``` # 强制使用现代无状态 MCP: llm -T 'MCP("https://example.com/mcp", mode="stateless")' '...' # 强制使用旧版 initialize 握手: llm -T 'MCP("https://example.com/mcp", mode="legacy")' '...' ``` ### 工具名称前缀 如果你正在使用来自多个服务器的工具,且它们的名称可能会发生冲突,请为每个服务器提供一个前缀: ``` llm -T 'MCP("https://one.example.com/mcp", prefix="one_")' \ -T 'MCP("https://two.example.com/mcp", prefix="two_")' '...' ``` ### Python API ``` import llm from llm_mcp_client import MCP model = llm.get_model("gpt-4.1-mini") result = model.chain( "Ask something that needs a tool", tools=[MCP("https://example.com/mcp")], ).text() ``` 包含 MCP 图像或音频内容的工具结果会作为 LLM 附件返回给模型。MCP 错误结果会引发 `llm_mcp_client.MCPToolError`,LLM 会将其作为错误消息传回给模型。 ## 开发 要在本地设置此插件,请首先检出代码。然后使用 `uv` 运行测试: ``` cd llm-mcp-client uv run pytest ``` 使用你正在开发中的插件运行 LLM: ``` uv run llm --help ```
标签:C2, DLL 劫持, MCP, Python, SOC Prime, 人工智能, 大语言模型, 安全规则引擎, 开发工具, 插件, 无后门, 用户模式Hook绕过, 逆向工具