司法書士 登記 watch pack (A4)
顧客法人 watch list で役員変更 / 商号変更 / 資本変更 / 適格事業者 取消 を webhook + RSS。同名法人解消は 13 桁法人番号 + 適格番号 T-prefix で出典 URL 添付。
誰のためか
司法書士 (Judicial-Scrivener) コホート. 月次 150 req 想定 (¥3/req)。
1 query で返るもの (package_kind)
watch_digest, evidence_packet
呼び出される heavy / composed endpoint
POST /v1/houjin/watch/subscribePOST /v1/houjin/360POST /v1/invoice_registrants/searchPOST /v1/jpcite/routePOST /v1/evidence/packets/query
SDK example — Python (jpcite-mcp / autonomath-mcp PyPI)
# A4 Judicial-Scrivener Registry Watch Pack — Python (jpcite-mcp)
import os
import httpx
JPCITE_API = "https://api.jpcite.com"
API_KEY = os.environ["JPCITE_API_KEY"] # see https://jpcite.com/dashboard
def fetch_shihoshoshi_packet(houjin_bangou: str) -> dict:
# 1. Free preflight — no charge until accepted_artifact delivery.
preview = httpx.post(
f"{JPCITE_API}/v1/jpcite/preview_cost",
headers={"X-API-Key": API_KEY, "X-Client-Tag": "shihoshoshi-001"},
json={"outcome_contract_id": "A4_shihoshoshi_registry_watch",
"input": {"houjin_bangou": houjin_bangou}}
).raise_for_status().json()
assert preview["cap_passed"], "outcome exceeds cap — adjust max_price_jpy"
# 2. Execute packet — charges 66 billable units (=¥66).
packet = httpx.post(
f"{JPCITE_API}/v1/jpcite/execute_packet",
headers={"X-API-Key": API_KEY,
"X-Client-Tag": "shihoshoshi-001",
"X-Jpcite-Scoped-Cap-Token": preview["scoped_cap_token"],
"Idempotency-Key": f"shihoshoshi-{houjin_bangou}-2026-05"},
json={"outcome_contract_id": "A4_shihoshoshi_registry_watch",
"input": {"houjin_bangou": houjin_bangou},
"max_price_jpy": 2200}
).raise_for_status().json()
return packet # contains source_url[], fetched_at, known_gaps[], evidence[]
SDK example — TypeScript (Bedrock MCP / OpenAI tool-use)
// A4 Judicial-Scrivener Registry Watch Pack — TypeScript (Bedrock / OpenAI tool-use)
import { JpciteClient } from "@jpcite/sdk"; // wraps OpenAPI 219 paths
const client = new JpciteClient({
baseUrl: "https://api.jpcite.com",
apiKey: process.env.JPCITE_API_KEY!,
clientTag: "shihoshoshi-001", // 顧問先 fan-out attribution
});
export async function fetchJudicialScrivenerPacket(houjinBangou: string) {
const preview = await client.previewCost({
outcome_contract_id: "A4_shihoshoshi_registry_watch",
input: { houjin_bangou: houjinBangou },
});
if (!preview.cap_passed) throw new Error("over cap");
const packet = await client.executePacket({
outcome_contract_id: "A4_shihoshoshi_registry_watch",
input: { houjin_bangou: houjinBangou },
max_price_jpy: 2200,
scopedCapToken: preview.scoped_cap_token,
idempotencyKey: `shihoshoshi-${houjinBangou}-2026-05`,
});
return packet; // { source_url[], fetched_at, known_gaps[], evidence[] }
}
Claude Code .mcp.json snippet
{
"mcpServers": {
"jpcite": {
"command": "npx",
"args": [
"-y",
"autonomath-mcp"
],
"env": {
"JPCITE_API_KEY": "${env:JPCITE_API_KEY}",
"JPCITE_DEFAULT_OUTCOME": "A4_shihoshoshi_registry_watch",
"JPCITE_CLIENT_TAG": "shihoshoshi-001"
}
}
}
}
司法書士 登記 watch — 削減 (FF1 SOT §4)
Tier A (¥3/req): 30 watch / 月 を 1 cron で集約。
Opus 4.7 同等深さ: 3-turn Opus 4.7 simple chain (登記簿 watch 1 件) ≈ ¥54 / 1 chain (FX ¥150/USD anchor; FF1 SOT §2)。
削減: 月 30 watch × Opus ¥54 = ¥1,620 vs jpcite ¥90 (30 × ¥3) → 18.0x / ¥1,530 削減
数値検証: FF1 SOT §3 / §4 ・ agents.json cost_efficiency_claim ・ MCP tool description footer。3 store 一致は scripts/validate_cost_saving_claims_consistency.py で CI gate。
jpcite ¥450 / 月 vs LLM API replacement
| 路線 | 1 packet | 150 packet / 月 |
|---|---|---|
| jpcite (A4) | ¥3 (税抜) / ¥3.30 (税込) | ¥450 |
| LLM Opus 4.7 only | ¥28.12 | ¥4,218 |
| LLM Sonnet 4.6 only | ¥5.62 | ¥843 |
| LLM Haiku 4.5 only | ¥1.5 | ¥225 |
cheapest LLM tier (Haiku 4.5) でも jpcite の 0.5x コスト。 さらに LLM 単独は出典 URL を hallucinate するため、 一次資料 URL + fetched_at + known_gaps は jpcite でしか得られない。
1 call ≈ 人手 ¥2,200 相当
30-90 分の一次資料調査 + 名寄せ + 出典確認を 1 query で代替。 代替時給 ¥3,000 換算で 1 packet ≒ ¥2,200。 jpcite ¥3 / packet との差分が ROI。
免責 / 越権越えゼロの境界
- §3: 司法書士法 §3 — 登記・供託に関する手続代理は司法書士の独占業務。jpcite は登記簿公開情報 + 適格事業者公開情報の lookup のみ。
使い始める
- /dashboard で API キー発行 (匿名 3 req/日無料)
- Python:
pip install autonomath-mcp - Claude Code:
.mcp.json上記 snippet を貼り付け - getting-started 経由で 1 packet を取得