mcpField
R
Refunc MCP Server

Refunc MCP Server

本地服务
github.com/refunc云与基础设施126 周前更新

关于 Refunc MCP Server

Refunc MCP Server 将 Refunc 函数映射为 MCP 工具,并通过 SSE 端点提供调用。项目文档介绍了在 Kubernetes 中部署 Refunc、创建函数并配置 MCP 事件的流程。

主要功能

  1. 01将函数映射为 MCP 工具
  2. 02通过 SSE 暴露 MCP 端点
  3. 03支持在一个函数中实现多个工具
  4. 04提供 Kubernetes 部署流程

适用场景

  1. 01将 Refunc 函数作为 MCP 工具调用
  2. 02部署 MCP SSE 端点
  3. 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 是工具的名称。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。