Refunc MCP Server について
Refunc MCP Serverは、Refuncの関数をMCPツールとして割り当て、SSEエンドポイント経由で提供します。ドキュメントでは、KubernetesへのRefuncのデプロイ、関数の作成、MCPイベントの設定手順を説明しています。
主な機能
- 01関数をMCPツールに割り当て
- 02SSE経由でMCPエンドポイントを公開
- 031つの関数で複数ツールを実装
- 04Kubernetesへのデプロイ手順
活用シーン
- 01Refuncの関数をMCPツールとして呼び出す
- 02MCP SSEエンドポイントをデプロイ
- 03関数内に複数のMCPツールを実装
MCP 対応
SSEエンドポイントを通じてMCPクライアントにツールを公開します。MCPイベントでツール名と説明を指定し、関数呼び出し時にはRefuncが組み込みパラメーターを追加します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Refunc MCP サーバー
Refunc のデプロイ
namespace 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
注:デモデプロイのデータは永続化されません。
Function の作成
refunc-cli を使って Function を作成します。
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
注: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 フィールドはデータ構造であり、1 つの関数を使って複数のツールを実装できます。 関数を呼び出すと、refunc は 2 つの組み込みパラメーター _call_type と _call_method を追加します。_call_method はツール名です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。