关于 Refunc MCP Server
Refunc MCP Server 将 Refunc 函数映射为 MCP 工具,并通过 SSE 端点提供调用。项目文档介绍了在 Kubernetes 中部署 Refunc、创建函数并配置 MCP 事件的流程。
主要功能
- 01将函数映射为 MCP 工具
- 02通过 SSE 暴露 MCP 端点
- 03支持在一个函数中实现多个工具
- 04提供 Kubernetes 部署流程
适用场景
- 01将 Refunc 函数作为 MCP 工具调用
- 02部署 MCP SSE 端点
- 03在函数中实现多个 MCP 工具
MCP 相关
它通过 SSE 端点向 MCP 客户端提供工具。MCP 事件配置定义工具名称和描述,调用时 Refunc 会附加内置参数。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Refunc MCP 服务
部署 Refunc
在 refunc-system 命名空间中部署所有 refunc 组件。
kubectl apply -f https://raw.githubusercontent.com/refunc/mcp-server/refs/heads/main/deploy/play-all-in-one.yaml
然后将 refunc 服务代理到本地。
kubectl port-forward svc/aws-api 8000:http --address 0.0.0.0 -n refunc-system
kubectl port-forward svc/mcp-server 8001:http --address 0.0.0.0 -n refunc-system
PS:演示部署中的数据不会持久保存。
创建函数
使用 refunc-cli 创建函数。
pip install -U refunc-cli
mkdir mcp-demo && cd mcp-demo
rfctl init
Initing function manifest in /path/mcp-demo/lambda.yaml
Name: mcp-demo
Namespace: refunc-system
Select Language:
1 - python
2 - go
Choose from 1, 2 [1]:
Select Runtime:
1 - python3.10
2 - python3.9
3 - python3.8
Choose from 1, 2, 3 [1]:
# write any code in main.py, the demo is echo a hello msg.
AWS_DEFAULT_ENDPOINT=http://127.0.0.1:8000 rfctl create
PS:你需要 Python 3 环境。
创建 MCP 端点
按以下代码编辑 lambda.yaml。
metadata:
name: mcp-demo
namespace: refunc-system
spec:
build:
source: .
manifest: requirements.txt
language: python
architecture: x86_64
handler: main.lambda_handler
timeout: 120
runtime: "python3.10"
concurrency: 1
environment:
ENV_TEST: TEST
# url:
# cors:
# allowCredentials: true
# allowHeaders: "*"
# allowMethods: "*"
# allowOrigins: "*"
# exposeHeaders: "*"
# maxAge: 300
events:
# - name: hourly
# type: cron
# mapping:
# cron: 0 * * * *
# location: Asia/Shanghai
# args:
# var1: value1
# saveLog: false
# saveResult: false
- name: mcp
type: mcp
mapping:
args:
token: mcp-demo
tools:
- name: echo-hello
desc: Echo a hello msg #Cannot contain single quotes
schema:
type: object
properties: {}
required: []
saveLog: false
saveResult: false
AWS_DEFAULT_ENDPOINT=http://127.0.0.1:8000 rfctl update-config
演示 MCP SSE 端点为:http://127.0.0.1:8001/refunc-system/mcp-demo/test/mcp-demo/sse
Refunc MCP SSE URL 路径格式为:/namespace/<token-secret-name>/<token>/<func-name>/sse
MCP 事件规范
- name: mcp
type: mcp # the event type must be mcp.
mapping:
args:
token: mcp-demo # the token secret name you can find in play-all-in-one.yaml.
tools: # mcp tools
- name: echo-hello # mcp tool name
desc: Echo a hello msg # mcp tool desc
schema: # mcp tool parameters, described with a valid JSON Schema.
type: object
properties: {}
required: []
saveLog: false
saveResult: false
事件的 tools 字段是一种数据结构,你可以使用一个函数实现多个工具。 调用函数时,refunc 会添加两个内置参数:_call_type 和 _call_method,其中 _call_method 是工具的名称。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。