本地FaaS服务

一个基于模型上下文协议(MCP)的服务器,使大型语言模型能够本地部署、执行和管理有状态函数。

  • by Somsubhra-Nandi
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Somsubhra-Nandi/metacall_mcp-py

使用说明

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-py

2.设置虚拟环境(推荐)

Windows(PowerShell):

python -m venv venv
.\venv\Scripts\Activate.ps1

Mac/Linux:

source venv/bin/activate

3.安装依赖项

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 |列出所有活动上下文。 |

建筑

  1. 接口层(main.py): 用途 FastMCP 处理协议通信并验证JSON模式。
  2. 状态层(store.py): 使用Python字典进行O(1)检索的内存存储。实现状态持久性的“读取-修改-写入”循环。
  3. 执行层(executor.py): 一个模拟运行时环境的模拟模块,使用 subprocess(下一阶段将由官方绑定取代)。