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. 02SSE経由でMCPエンドポイントを公開
  3. 031つの関数で複数ツールを実装
  4. 04Kubernetesへのデプロイ手順

活用シーン

  1. 01Refuncの関数をMCPツールとして呼び出す
  2. 02MCP SSEエンドポイントをデプロイ
  3. 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 はツール名です。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。