返回市场
麦克佩-版本-功能调用

麦克佩-版本-功能调用

作者:andrelandgraf8 星标更新:2025-03-10

项目介绍

函数调用与MCP服务器

此仓库旨在说明LLM函数调用与模型上下文协议(MCP)之间的差异。 函数调用已经存在了一段时间,而MCP是一种较新的标准化尝试。 比较这两种方法展示了MCP的价值以及它是如何在函数调用的基础上构建的。

此仓库包含两个示例:

  • /func-calling:使用OpenAI函数调用来控制Home Assistant灯光的CLI应用
  • /mcp-server:一个Node.js MCP服务器,通过MCP协议向LLMs暴露control_lights函数

想看看实际效果吗?请查看我在YouTube上的演示视频:MCP vs. 函数调用 - 使用Cursor控制我的办公室灯光

Home Assistant

Home Assistant是一个开源的家庭自动化平台。我在家中的Raspberry Pi上运行它。 Home Assistant控制着我的灯光,你可以通过Home Assistant WebSocket API来控制它。

我之前在玩转Home Assistant时构建了./data-manager./hass-ws-client工具。我认为这会是一个有趣的外部工具示例。然而,Home Assistant代码并不是这个仓库的重点。

函数调用

OpenAI函数调用文档

函数调用允许AI助手调用预定义的函数或工具。这些函数直接在助手的环境中运行,可以执行从文件搜索到API调用的各种操作。LLM接收JSON格式的函数描述,并指定要调用哪个函数及其参数。应用程序随后处理执行。

-> 函数存在于你的LLM应用程序代码中。

MCP服务器

MCP文档

MCP服务器连接AI应用程序与第三方服务。它们通过一种任何兼容MCP的LLM都可以使用的标准化协议暴露函数。虽然函数调用是在本地进行的,但MCP服务器则单独处理外部服务通信、认证和命令执行。

-> MCP服务器是任何兼容MCP的LLM都可以使用的独立应用程序。

配置MCP服务器

  1. mcp-server目录下创建一个.env文件:
cp mcp-server/.env.example mcp-server/.env
  1. 将你的Home Assistant API令牌添加到.env文件中:
HOME_ASSISTANT_API_TOKEN=<your-home-assistant-api-token>
  1. 构建MCP服务器:
bun i
bun run build
  1. 将MCP服务器添加到你的LLM应用程序配置中(例如,Cursor):
{
  "name": "home-assistant",
  "command": "node /Users/andrelandgraf/workspaces/mcps/mcp-server/dist/index.js"
}

就这样!现在你的LLM应用程序可以通过MCP服务器控制Home Assistant的灯光。