MetaCall本地FaaS(MCP Python原型)
A. 模型上下文协议(MCP) 使大型语言模型(例如:-Claude)能够在本地部署、执行和管理有状态函数的服务器。
该原型展示了 功能即服务(FaaS) AI代理可以编写代码(Python/JavaScript),将其部署到内存存储中,并使用持久会话状态执行它的架构。
特性
- 多语言支持: 在中部署功能 python (
py)或 JavaScript (js). - 正式执行: 函数可以跨调用读取和修改持久上下文。
- 内存架构: 快速、轻量级地模拟FaaS环境(O(1)访问),无需外部数据库依赖。
______________________________________________________________________
安装
1.克隆存储库
git clone https://github.com/Somsubhra-Nandi/metacall-mcp-py.git
cd metacall-mcp-py2.设置虚拟环境(推荐)
Windows(PowerShell):
python -m venv venv
.\venv\Scripts\Activate.ps1Mac/Linux:
source venv/bin/activate3.安装依赖项
pip install -r requirements.txt配置: 要将此服务器连接到Claude Desktop,您必须编辑配置文件。 配置文件位置: 窗户: %APPDATA%\Claude\claude_desktop_config.json
雨衣: ~/Library/Application Support/Claude/claude_desktop_config.json
添加此条目:(将ABSOLUTE_PATH替换为项目文件夹的完整路径)
"mcpServers": {
"metacall-local-faas": {
"command": "python",
"args": ["ABSOLUTE_PATH\\metacall-mcp-py\\main.py"]
}
}
}保存文件后重新启动Claude Desktop。在windows中,即使单击右上角的X符号,claude也会在后台运行。转到任务管理器,强制停止claude桌面。
用法
提示示例:
“我想创建一个有状态计数器。部署一个名为'counter'的JS函数,该函数接受上下文,将'count'递增1并返回新值。然后,运行3次以显示状态持久性。”
可用工具
|工具|说明| | :--- | :--- | | faas_deploy |将代码部署到内存中。 | | faas_run |执行带有参数和会话ID的函数| | faas_list |列出所有已部署的函数。 | | context_create |手动创建新的会话状态。 | | context_get |检查会话中的当前数据。 | | context_set |按ID覆盖/更新上下文数据| | context_list |列出所有活动上下文。 |
建筑
- 接口层(
main.py): 用途FastMCP处理协议通信并验证JSON模式。 - 状态层(
store.py): 使用Python字典进行O(1)检索的内存存储。实现状态持久性的“读取-修改-写入”循环。 - 执行层(
executor.py): 一个模拟运行时环境的模拟模块,使用subprocess(下一阶段将由官方绑定取代)。
