本文へスキップ

OpenAI Codex CLI / Agents SDK から jpcite 1 import

from agents import Agent, HostedMCPTool + HostedMCPTool(tool_config={'type':'mcp','server_label':'jpcite','server_url':'https://api.jpcite.com/mcp','require_approval':'never'}) で 151 tool 即時利用。anon free 3 req/IP/日、paid は税別 ¥3/billable unit metered。

5 分接続手順

  1. openai-agents をインストール: pip install openai-agents (Python 3.10+)。
  2. HostedMCPTool で jpcite を構築: mcp_tool = HostedMCPTool(tool_config={'type': 'mcp', 'server_label': 'jpcite', 'server_url': 'https://api.jpcite.com/mcp', 'require_approval': 'never'}) を 1 行で記述。
  3. Agent に bind: agent = Agent(name='jp_subsidy', tools=[mcp_tool]) で 151 tool を Agent に bind。
  4. (任意) API key を渡す: tool_config'headers': {'X-API-Key': os.environ.get('JPCITE_API_KEY', '')} を追加で metered モードへ昇格。anon free のままなら省略可。
  5. 動作確認: 次節のサンプルで Runner.run_sync(agent, input='...') が 151 tools 経由で回答することを確認。

copy-paste snippet

Agent 定義 + search_programs 呼出までを含む 30 行サンプル。

import os
from agents import Agent, HostedMCPTool, Runner

# 1) jpcite hosted MCP endpoint を HostedMCPTool として構築
mcp_tool = HostedMCPTool(
    tool_config={
        "type": "mcp",
        "server_label": "jpcite",
        "server_url": "https://api.jpcite.com/mcp",
        "require_approval": "never",
        "headers": {
            # anon free (3 req/IP/日) なら headers 丸ごと省略可
            "X-API-Key": os.environ.get("JPCITE_API_KEY", ""),
        },
    },
)

# 2) Agent に jpcite tools を bind
agent = Agent(
    name="jp_subsidy",
    instructions=(
        "あなたは日本の補助金/法令/税制 アシスタントです。"
        "jpcite tools を必ず呼び、source_url と fetched_at を回答に明記してください。"
        "個別の税務/法律助言 (税理士法§52、弁護士法§72 等) は行わず、"
        "一般情報の引用と専門家への相談推奨のみ。"
    ),
    tools=[mcp_tool],
)

# 3) 実行例
result = Runner.run_sync(
    agent,
    input="東京都のものづくり補助金で、製造業向けの最新公募を 3 件、source_url 付きで",
)
print(result.final_output)

動作確認

Agent 経由で ものづくり補助金 東京都 を投げ、jpcite tools 経由の回答 (source_url 付き) が返ることを確認します。公開 tools は 151 件で、36協定書面の生成機能は公開提供していません。

python -c "import os; from agents import Agent, HostedMCPTool, Runner; \
t = HostedMCPTool(tool_config={'type':'mcp','server_label':'jpcite','server_url':'https://api.jpcite.com/mcp','require_approval':'never'}); \
a = Agent(name='probe', tools=[t]); \
print(Runner.run_sync(a, input='ものづくり補助金 東京都').final_output)"

期待: 補助金名 + source_url を含む応答が返る。tools 一覧 (151) はサーバ側で curl -s https://api.jpcite.com/mcp/tools | jq 'length' で別途確認。

REST 直叩きで疎通確認する場合は -G --data-urlencode を必ず使うこと。日本語 query を URL に直接埋めると HTTP リクエスト行が壊れ、API は {"error":{"code":"bad_request",...,"hint":"Use --data-urlencode for non-ASCII query params..."}} を返します。

curl -G "https://api.jpcite.com/v1/programs/search" \
  --data-urlencode "q=ものづくり補助金" \
  --data-urlencode "prefecture=東京都" \
  -H "X-API-Key: ${JPCITE_API_KEY:-}"

FAQ

REST 直叩き vs MCP どちらが良い?

Agent ループに組み込むなら MCP (HostedMCPTool) を推奨。tools schema が自動で SDK 側に展開され、Agent の関数呼出と互換になります。スクリプト型処理なら REST 直叩き (https://api.jpcite.com/v1/...) でも構いません。

API key はどう発行する?

/pricing.html#api-paid から Stripe Checkout (consent は custom_text.submit.message 経由) で発行。anon free は IP ベース 3 req/日上限、paid は税別 ¥3/billable unit metered で上限なし。

8 業法 fence とは?

jpcite は税理士法§52・弁護士法§72 等の独占業務に抵触する個別助言を返しません。/legal-fence.html 参照。Agent の instructions にも明記してください。