
Vs Function Calling
通过与函数调用进行比较来解释MCP
函数调用 vs MCP 服务器
本存储库旨在说明大型语言模型(LLM)函数调用和模型上下文协议(MCP)之间的区别。函数调用已经存在了一段时间,而 MCP 是一种新的标准化尝试。通过比较这两种方法可以展示 MCP 的价值及其如何在函数调用的基础上构建。
此存储库包含两个示例:
/func-calling:使用 OpenAI 的函数调用来控制 Home Assistant 灯光的命令行应用程序/mcp-server:用 Node.js 实现的 MCP 服务器,向使用 MCP 协议的 LLM 暴露control_lights功能
想知道它具体表现?请查看我在 YouTube 上的演示视频:MCP vs. 函数调用 - 使用 Cursor 控制我的办公室灯光
Home Assistant
Home Assistant 是一个开源的家庭自动化平台。我在家里的树莓派上运行它。
Home Assistant 控制我的灯光,并且可以通过 Home Assistant WebSocket API 控制。
一段时间前,我构建了 ./data-manager 和 ./hass-ws-client 工具来玩弄 Home Assistant。我认为这是一个有趣的例子,可以应用于外部工具。然而,Home Assistant 的代码并不是这个存储库的主要焦点。
函数调用
函数调用让 AI 助手可以调用预定义的函数或工具。这些函数运行在助手的环境中,可以执行从文件搜索到 API 调用的各种操作。LLM 以 JSON 格式接收函数描述,并指定调用哪个函数以及传递什么参数。应用程序随后处理执行。
-> 函数存在于你的 LLM 应用代码中。
MCP 服务器
MCP 服务器将 AI 应用与第三方服务连接起来。它们通过标准化的协议暴露功能,任何兼容 MCP 的 LLM 都可以使用。虽然函数调用是本地进行的,但 MCP 服务器单独进行外部服务通信、认证和命令执行。
-> MCP 服务器是独立的应用程序,任何兼容 MCP 的 LLM 都能使用。
设置 MCP 服务器
- 在
mcp-server目录中创建一个.env文件:
bash
cp mcp-server/.env.example mcp-server/.env
- 将你的 Home Assistant API 密钥添加到
.env文件中:
bash
HOME_ASSISTANT_API_TOKEN=<你的-homeassistant-api-token>
- 构建 MCP 服务器:
bash
bun i
bun run build
- 将 MCP 服务器添加到你的 LLM 应用配置中(例如,Cursor):
json
{
"name": "home-assistant",
"command": "node /Users/andrelandgraf/workspaces/mcps/mcp-server/dist/index.js"
}
完成!你的 LLM 应用现在可以通过 MCP 服务器控制 Home Assistant 灯光。

Agent8
Agent8 的 MCP 服务器
Aio Mcp
🚀 集成 AI 搜索、RAG 和多服务整合(GitLab/Jira/Confluence/YouTube)的一体化 MCP 服务器,助力 AI 增强的开发工作流。源自 https://github.com/nguyenvanduocit/all-in-one-model-context-protocol
Datagov Server
一个用于访问 Data.gov 数据的 MCP 服务器,提供与政府数据集交互的工具和资源。
Datahub
DataHub (https://datahubproject.io) 的官方 MCP 服务器,集成了 MCP 协议 (https://modelcontextprotocol.io/introduction)。
