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 分接続手順
- openai-agents をインストール:
pip install openai-agents(Python 3.10+)。 - HostedMCPTool で jpcite を構築:
mcp_tool = HostedMCPTool(tool_config={'type': 'mcp', 'server_label': 'jpcite', 'server_url': 'https://api.jpcite.com/mcp', 'require_approval': 'never'})を 1 行で記述。 - Agent に bind:
agent = Agent(name='jp_subsidy', tools=[mcp_tool])で 151 tool を Agent に bind。 - (任意) API key を渡す:
tool_configに'headers': {'X-API-Key': os.environ.get('JPCITE_API_KEY', '')}を追加で metered モードへ昇格。anon free のままなら省略可。 - 動作確認: 次節のサンプルで
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 にも明記してください。