mcpField
E
Extend Mcp

Extend Mcp

ローカル
github.com/paywithextend開発ツール1715 週間前に更新

Extend Mcp について

Extend AI Toolkitは、AIフレームワークやMCP対応クライアントからExtendの支出管理APIを利用するPythonツールキットです。カード、取引、経費処理のツールを備え、Extend APIの認証情報が必要です。

主な機能

  1. 01MCP、OpenAI、LangChain、CrewAIに対応
  2. 02バーチャルカードとクレジットカードの管理
  3. 03取引データの取得と更新
  4. 04経費カテゴリとラベルの管理
  5. 05領収書のアップロードと自動照合の確認

活用シーン

  1. 01AIクライアントからカードや取引の詳細を取得
  2. 02経費データやカテゴリを更新
  3. 03領収書をアップロードして取引との照合状況を確認

MCP 対応

Extend APIの操作をツールとして公開するMCPサーバー構築用コンポーネントを含みます。ローカル実行のほか、SSE経由でリモート実行してMCPクライアントから接続できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"extend-ai-toolkit": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem"
],
"env": {
"EXTEND_API_KEY": "<EXTEND_API_KEY>",
"EXTEND_API_SECRET": "<EXTEND_API_SECRET>"
}
}
}
}
起動コマンドnpx -y @modelcontextprotocol/server-filesystem
設定が必要な環境変数
EXTEND_API_KEYシークレット
EXTEND_API_SECRETシークレット

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@modelcontextprotocol/server-filesystem

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Extend AI Toolkit

概要

Extend AI Toolkit は、Anthropic の Model Context Protocol (MCP)、OpenAI、LangChain、CrewAI など、複数の AI フレームワークと連携する Extend API 用ツールを、Python で実装したものです。これにより、支出管理のワークフローにおける特定の操作を、AI エージェントや Claude デスクトップのような MCP 互換クライアントに委任できます。

これらのツールは、API キーをお持ちの Extend ユーザー向けに設計されています。Extend に登録しておらず、中小企業向けの最新で使いやすいバーチャルカードおよび支出管理プラットフォームについて詳しく知りたい場合は、paywithextend.com をご覧ください。

機能

  • 複数の AI フレームワークをサポート:Anthropic Model Context Protocol、OpenAI Agents、LangChain の LangGraph と ReAct、CrewAI の各フレームワークで動作します。
  • 包括的なツールセット:クレジットカード、バーチャルカード、取引、経費管理に関する Extend の主要な API 機能を幅広くサポートします。

インストール

パッケージを変更する場合を除き、このソースコードは必要ありません。パッケージを使用するだけの場合は、次を実行してください。

pip install extend_ai_toolkit
要件
  • Python:バージョン 3.10 以降
  • Extend API キー:API キーを取得するには、paywithextend.com に登録してください。
  • フレームワーク固有の要件:
    • LangChain:langchain および langchain-openai パッケージ
    • OpenAI:openai パッケージ
    • CrewAI:crewai パッケージ
    • Anthropic:anthropic パッケージ(Claude 用)

設定

このライブラリを使用するには、環境変数またはコマンドライン引数で Extend API キーと API を設定する必要があります。

--api-key=your_api_key_here --api-secret=your_api_secret_here 

または、環境変数で設定します。

EXTEND_API_KEY=your_api_key_here
EXTEND_API_SECRET=your_api_secret_here
カスタム認証(paywithextend 2.0 以降)

paywithextend>=2.0.0 にアップグレードすると、SDK で再利用可能な認証方式を使用できます。新しい BearerAuth を含む任意の実装をツールキットに渡せます。

from extend.auth import BearerAuth
from extend_ai_toolkit.shared import ExtendAPI

extend_api = ExtendAPI.from_auth(BearerAuth(jwt_token="your-jwt-token"))

引き続き paywithextend 1.x を使用する場合は、api_key と api_secret を指定してください。ツールキットが自動的に対応します。

利用可能なツール

ツールキットには、機能別に整理された包括的なツールセットが用意されています。

バーチャルカード
  • get_virtual_cards:任意のフィルターを指定してバーチャルカードを取得します
  • get_virtual_card_detail:特定のバーチャルカードの詳細情報を取得します
クレジットカード
  • get_credit_cards:すべてのクレジットカードを一覧表示します
  • get_credit_card_detail:特定のクレジットカードの詳細情報を取得します
取引
  • get_transactions:さまざまなフィルターを指定して取引を取得します
  • get_transaction_detail:特定の取引の詳細情報を取得します
  • update_transaction_expense_data:取引の経費関連データを更新します
経費管理
  • get_expense_categories:すべての経費カテゴリを一覧表示します
  • get_expense_category:特定の経費カテゴリの詳細を取得します
  • get_expense_category_labels:経費カテゴリのラベルを取得します
  • create_expense_category:新しい経費カテゴリを作成します
  • create_expense_category_label:経費カテゴリにラベルを追加します
  • update_expense_category:既存の経費カテゴリを変更します
  • create_receipt_attachment:領収書をアップロードします(取引への添付も任意で可能です)
  • automatch_receipts:アップロード済みの領収書と取引を自動照合する非同期ジョブを開始します
  • get_automatch_status:自動照合ジョブのステータスを取得します
  • send_receipt_reminder:領収書が未添付の取引について、メールでリマインダーを送信します

使用例

Model Context Protocol

このツールキットには、MCP サーバーの構築に役立つリソースが extend_ai_toolkit.modelcontextprotocol パッケージに用意されています。

開発

MCP Inspector を使用して、Extend MCP サーバーをローカルでテストします。

npx @modelcontextprotocol/inspector python extend_ai_toolkit/modelcontextprotocol/main.py --tools=all
Claude Desktop との連携

設定ファイルを編集して、このツールを Claude Desktop の MCP サーバーとして追加します。

MacOS の場合:~/Library/Application\ Support/Claude/claude_desktop_config.json Windows の場合:%APPDATA%/Claude/claude_desktop_config.json

Claude Desktop で create_receipt_attachment ツールを使用するには、npm install @modelcontextprotocol/server-filesystem を実行して Filesystem MCP サーバーをインストールし、設定ファイルにも追加する必要があります。

ご注意ください。現在の制限により、Claude Desktop に直接アップロードした画像は Extend にアップロードできません。これは、Claude Desktop アプリが画像の元データにアクセスできないためです。そのため、Filesystem MCP Server が必要です。

Filesystem を追加すると、領収書専用のフォルダーを設定し、Claude に領収書をアップロードして、最も可能性の高い取引に自動で照合するよう指示できます。また、領収書を添付する取引がわかっている場合は、その取引に領収書をアップロードするよう Claude に指示できます(自動照合の手順は省略します)。

{
  "extend-mcp": {
    "command": "python",
    "args": [
      "-m",
      "extend_ai_toolkit.modelcontextprotocol.main",
      "--tools=all"
    ],
    "env": {
      "EXTEND_API_KEY": "apik_XXXX",
      "EXTEND_API_SECRET": "XXXXX"
    }
  },
  // optional: if you want to use the create_receipt_attachment tool
  "filesystem": { 
    "command": "npx",
    "args": [
      "-y",
      "@modelcontextprotocol/server-filesystem",
      "/path/to/receipts/folder"
    ]
  }
}
リモート実行

サーバーをリモートで実行し、SSE トランスポートを介して通信することもできます。

python -m extend_ai_toolkit.modelcontextprotocol.main_sse --tools=all --api-key="apikey" --api-secret="apisecret"

また、必要に応じて MCP ターミナルクライアントを使用して接続できます。

python -m extend_ai_toolkit.modelcontextprotocol.client.mcp_client --mcp-server-host localhost --mcp-server-port 8000 --llm-provider=anthropic --llm-model=claude-3-5-sonnet-20241022
OpenAI
import os
from langchain_openai import ChatOpenAI
from extend_ai_toolkit.openai.toolkit import ExtendOpenAIToolkit
from extend_ai_toolkit.shared import Configuration, Scope, Product, Actions

# Initialize the OpenAI toolkit
extend_openai_toolkit = ExtendOpenAIToolkit.default_instance(
    api_key=os.environ.get("EXTEND_API_KEY"),
    api_secret=os.environ.get("EXTEND_API_SECRET"),
    configuration=Configuration(
        scope=[
            Scope(Product.VIRTUAL_CARDS, actions=Actions(read=True)),
            Scope(Product.CREDIT_CARDS, actions=Actions(read=True)),
            Scope(Product.TRANSACTIONS, actions=Actions(read=True)),
        ]
    )
)

# Create an agent with the tools
extend_agent = Agent(
    name="Extend Agent",
    instructions="You are an expert at integrating with Extend",
    tools=extend_openai_toolkit.get_tools()
)
LangChain
import os
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
from extend_ai_toolkit.langchain.toolkit import ExtendLangChainToolkit
from extend_ai_toolkit.shared import Configuration, Scope, Product, Actions

# Initialize the LangChain toolkit
extend_langchain_toolkit = ExtendLangChainToolkit.default_instance(
    api_key=os.environ.get("EXTEND_API_KEY"),
    api_secret=os.environ.get("EXTEND_API_SECRET"),
    configuration=Configuration(
        scope=[
            Scope(Product.VIRTUAL_CARDS, actions=Actions(read=True)),
            Scope(Product.CREDIT_CARDS, actions=Actions(read=True)),
            Scope(Product.TRANSACTIONS, actions=Actions(read=True)),
        ]
    )
)

# Create tools for the agent
tools = extend_langchain_toolkit.get_tools()

# Create the agent executor
langgraph_agent_executor = create_react_agent(
    ChatOpenAI(model="gpt-4"),
    tools
)
CrewAI
import os
from extend_ai_toolkit.crewai.toolkit import ExtendCrewAIToolkit
from extend_ai_toolkit.shared import Configuration, Scope, Product, Actions

# Initialize the CrewAI toolkit
toolkit = ExtendCrewAIToolkit.default_instance(
    api_key=os.environ.get("EXTEND_API_KEY"),
    api_secret=os.environ.get("EXTEND_API_SECRET"),
    configuration=Configuration(
        scope=[
            Scope(Product.VIRTUAL_CARDS, actions=Actions(read=True)),
            Scope(Product.CREDIT_CARDS, actions=Actions(read=True)),
            Scope(Product.TRANSACTIONS, actions=Actions(read=True)),
        ]
    )
)

# Configure the LLM (using Claude)
toolkit.configure_llm(
    model="claude-3-opus-20240229",
    api_key=os.environ.get("ANTHROPIC_API_KEY")
)

# Create the Extend agent
extend_agent = toolkit.create_agent(
    role="Extend Integration Expert",
    goal="Help users manage virtual cards, view credit cards, and check transactions efficiently",
    backstory="You are an expert at integrating with Extend, with deep knowledge of virtual cards, credit cards, and transaction management.",
    verbose=True
)

# Create a task for handling user queries
query_task = toolkit.create_task(
    description="Process and respond to user queries about Extend services",
    agent=extend_agent,
    expected_output="A clear and helpful response addressing the user's query",
    async_execution=True
)

# Create a crew with the agent and task
crew = toolkit.create_crew(
    agents=[extend_agent],
    tasks=[query_task],
    verbose=True
)

# Run the crew
result = crew.kickoff()

コントリビューション

コントリビューションを歓迎します。お気軽にプルリクエストを送信してください。

ライセンス

このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

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

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