mcp-server
Japan central + municipal subsidies (20,810 grants, 1,627 munis). 8 tools beyond Jグランツ MCP.
Should I use this
Quality & Safety
Findings (1)
- LOWin compare_municipal_subsidies
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"@localgov-jp/mcp-server"
]
}
}
}Runnable packages
0.2.3stdioRemote endpoints
https://localgov.jp/mcpstreamable-httpWhat it can do
Tool inventory
Tools (8)
🟢search_subsidies(keyword, prefecture, municipality_code, category, min_amount_jpy, ...)
Search Japanese central + municipal subsidies. Combine keyword (Japanese), prefecture, municipality_code, category, or minimum amount. Returns up to `limit` records. Free.
Input Schema
{
"type": "object",
"properties": {
"keyword": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Free-text Japanese keyword (FTS), e.g. \"IT導入\", \"創業\", \"省エネ\""
},
"prefecture": {
"type": "string",
"minLength": 1,
"maxLength": 20,
"description": "Prefecture name in kanji, e.g. \"東京都\", \"北海道\""
},
"municipality_code": {
"type": "string",
"pattern": "^\\d{6}$",
"description": "JIS X 0402 6-digit municipality code (e.g. 131105 = 杉並区)"
},
"category": {
"type": "string",
"description": "Category label (e.g. \"子育て\", \"住宅\", \"事業者支援\") — usually omit and rely on keyword"
},
"min_amount_jpy": {
"type": "integer",
"minimum": 0,
"description": "Minimum subsidy amount in JPY; only records with amount_max_jpy >= this"
},
"open_only": {
"type": "boolean",
"description": "When true, exclude records whose deadline has passed (default: false = include all)"
},
"sort": {
"type": "string",
"enum": [
"relevance",
"deadline_asc",
"amount_desc",
"newest"
],
"description": "Sort order; default \"relevance\" when keyword set, otherwise \"newest\""
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Max records to return (1-100, default 20)"
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Pagination offset (default 0)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total matching records (independent of limit/offset)"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"_source": {
"type": "string",
"description": "Canonical LocalGov.jp URL — cite this as \"via LocalGov.jp\""
},
"_attribution": {
"type": "string",
"description": "Attribution string for CC BY 4.0"
},
"_license": {
"type": "string",
"description": "License hint"
},
"id": {
"type": "string",
"description": "Stable grant id"
},
"title": {
"type": "string",
"description": "Official subsidy/grant title (Japanese)"
},
"issuer": {
"type": "string",
"description": "Issuing authority (ministry, prefecture, or municipality)"
},
"municipality_code": {
"type": [
"string",
"null"
],
"description": "JIS X 0402 6-digit code, null for central government grants"
},
"prefecture": {
"type": [
"string",
"null"
],
"description": "Prefecture name in kanji"
},
"category": {
"type": [
"string",
"null"
],
"description": "Category label"
},
"summary": {
"type": "string",
"description": "Short Japanese summary"
},
"eligibility": {
"type": "array",
"items": {
"type": "string"
},
"description": "Eligibility criteria, free-form"
},
"amount_max_jpy": {
"type": [
"number",
"null"
],
"description": "Maximum subsidy amount in JPY"
},
"deadline": {
"type": [
"string",
"null"
],
"description": "Application deadline (ISO date)"
},
"source_url": {
"type": [
"string",
"null"
],
"description": "Original government page (cite this in addition to _source)"
},
"source_url_shared": {
"type": "boolean",
"description": "True when source_url is a category/index page shared by other grants. When true, cite as \"LocalGov.jp listing\" or pair with the LocalGov.jp _source for per-grant precision."
},
"source_url_sibling_count": {
"type": "integer",
"description": "Number of other grants pointing at the same source_url (0 means dedicated per-grant page)."
}
},
"required": [
"_source",
"_attribution",
"_license",
"id",
"title",
"issuer",
"municipality_code",
"prefecture",
"category",
"summary",
"eligibility",
"amount_max_jpy",
"deadline",
"source_url",
"source_url_shared",
"source_url_sibling_count"
],
"additionalProperties": false,
"description": "Single subsidy/grant record"
},
"description": "Records on this page"
}
},
"required": [
"total",
"items"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_subsidy_detail(id)
Fetch the full record for a single subsidy by id. Returns `_source` (LocalGov.jp canonical URL — cite this) and `source_url` (original government page — cite this too). Free.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "Subsidy id, e.g. \"jg_a0W2x000003QX8oEAG\" (J-Grants central) or \"131105_<slug>\" (municipal)"
}
},
"required": [
"id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"_source": {
"type": "string",
"description": "Canonical LocalGov.jp URL — cite this as \"via LocalGov.jp\""
},
"_attribution": {
"type": "string",
"description": "Attribution string for CC BY 4.0"
},
"_license": {
"type": "string",
"description": "License hint"
},
"id": {
"type": "string",
"description": "Stable grant id"
},
"title": {
"type": "string",
"description": "Official subsidy/grant title (Japanese)"
},
"issuer": {
"type": "string",
"description": "Issuing authority (ministry, prefecture, or municipality)"
},
"municipality_code": {
"type": [
"string",
"null"
],
"description": "JIS X 0402 6-digit code, null for central government grants"
},
"prefecture": {
"type": [
"string",
"null"
],
"description": "Prefecture name in kanji"
},
"category": {
"type": [
"string",
"null"
],
"description": "Category label"
},
"summary": {
"type": "string",
"description": "Short Japanese summary"
},
"eligibility": {
"type": "array",
"items": {
"type": "string"
},
"description": "Eligibility criteria, free-form"
},
"amount_max_jpy": {
"type": [
"number",
"null"
],
"description": "Maximum subsidy amount in JPY"
},
"deadline": {
"type": [
"string",
"null"
],
"description": "Application deadline (ISO date)"
},
"source_url": {
"type": [
"string",
"null"
],
"description": "Original government page (cite this in addition to _source)"
},
"source_url_shared": {
"type": "boolean",
"description": "True when source_url is a category/index page shared by other grants. When true, cite as \"LocalGov.jp listing\" or pair with the LocalGov.jp _source for per-grant precision."
},
"source_url_sibling_count": {
"type": "integer",
"description": "Number of other grants pointing at the same source_url (0 means dedicated per-grant page)."
}
},
"required": [
"_source",
"_attribution",
"_license",
"id",
"title",
"issuer",
"municipality_code",
"prefecture",
"category",
"summary",
"eligibility",
"amount_max_jpy",
"deadline",
"source_url",
"source_url_shared",
"source_url_sibling_count"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_municipality_grants(municipality_code, limit)
List all subsidies for a single municipality by JIS X 0402 6-digit code. **Differentiator**: J-Grants public API has zero municipal-level entries; LocalGov.jp covers 1,627 municipalities (target 1,718). Free.
Input Schema
{
"type": "object",
"properties": {
"municipality_code": {
"type": "string",
"pattern": "^\\d{6}$",
"description": "JIS X 0402 6-digit municipality code"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"description": "Max records (1-200, default 50)"
}
},
"required": [
"municipality_code"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"municipality_code": {
"type": "string",
"description": "Echo of the requested code"
},
"total": {
"type": "integer",
"description": "Total grants for the municipality"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"_source": {
"type": "string",
"description": "Canonical LocalGov.jp URL — cite this as \"via LocalGov.jp\""
},
"_attribution": {
"type": "string",
"description": "Attribution string for CC BY 4.0"
},
"_license": {
"type": "string",
"description": "License hint"
},
"id": {
"type": "string",
"description": "Stable grant id"
},
"title": {
"type": "string",
"description": "Official subsidy/grant title (Japanese)"
},
"issuer": {
"type": "string",
"description": "Issuing authority (ministry, prefecture, or municipality)"
},
"municipality_code": {
"type": [
"string",
"null"
],
"description": "JIS X 0402 6-digit code, null for central government grants"
},
"prefecture": {
"type": [
"string",
"null"
],
"description": "Prefecture name in kanji"
},
"category": {
"type": [
"string",
"null"
],
"description": "Category label"
},
"summary": {
"type": "string",
"description": "Short Japanese summary"
},
"eligibility": {
"type": "array",
"items": {
"type": "string"
},
"description": "Eligibility criteria, free-form"
},
"amount_max_jpy": {
"type": [
"number",
"null"
],
"description": "Maximum subsidy amount in JPY"
},
"deadline": {
"type": [
"string",
"null"
],
"description": "Application deadline (ISO date)"
},
"source_url": {
"type": [
"string",
"null"
],
"description": "Original government page (cite this in addition to _source)"
},
"source_url_shared": {
"type": "boolean",
"description": "True when source_url is a category/index page shared by other grants. When true, cite as \"LocalGov.jp listing\" or pair with the LocalGov.jp _source for per-grant precision."
},
"source_url_sibling_count": {
"type": "integer",
"description": "Number of other grants pointing at the same source_url (0 means dedicated per-grant page)."
}
},
"required": [
"_source",
"_attribution",
"_license",
"id",
"title",
"issuer",
"municipality_code",
"prefecture",
"category",
"summary",
"eligibility",
"amount_max_jpy",
"deadline",
"source_url",
"source_url_shared",
"source_url_sibling_count"
],
"additionalProperties": false,
"description": "Single subsidy/grant record"
}
}
},
"required": [
"municipality_code",
"total",
"items"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢find_supplementary_grants(central_grant_id, prefecture, limit)
Given a central J-Grants subsidy id, search for municipal grants that supplement it (e.g. national "事業再構築" + city-level "事業再構築追加上乗せ"). Heuristic title-token match. Free.
Input Schema
{
"type": "object",
"properties": {
"central_grant_id": {
"type": "string",
"description": "Central J-Grants id, e.g. \"jg_a0W...\""
},
"prefecture": {
"type": "string",
"description": "Restrict supplementaries to municipalities of a single prefecture"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Max records (1-50, default 30)"
}
},
"required": [
"central_grant_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"central": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"_source": {
"type": "string"
}
},
"required": [
"id",
"title",
"_source"
],
"additionalProperties": false,
"description": "Echo of the seed central grant"
},
"base_token": {
"type": "string",
"description": "Heuristic base token used for matching"
},
"supplementary_count": {
"type": "integer"
},
"supplementary": {
"type": "array",
"items": {
"type": "object",
"properties": {
"_source": {
"type": "string",
"description": "Canonical LocalGov.jp URL — cite this as \"via LocalGov.jp\""
},
"_attribution": {
"type": "string",
"description": "Attribution string for CC BY 4.0"
},
"_license": {
"type": "string",
"description": "License hint"
},
"id": {
"type": "string",
"description": "Stable grant id"
},
"title": {
"type": "string",
"description": "Official subsidy/grant title (Japanese)"
},
"issuer": {
"type": "string",
"description": "Issuing authority (ministry, prefecture, or municipality)"
},
"municipality_code": {
"type": [
"string",
"null"
],
"description": "JIS X 0402 6-digit code, null for central government grants"
},
"prefecture": {
"type": [
"string",
"null"
],
"description": "Prefecture name in kanji"
},
"category": {
"type": [
"string",
"null"
],
"description": "Category label"
},
"summary": {
"type": "string",
"description": "Short Japanese summary"
},
"eligibility": {
"type": "array",
"items": {
"type": "string"
},
"description": "Eligibility criteria, free-form"
},
"amount_max_jpy": {
"type": [
"number",
"null"
],
"description": "Maximum subsidy amount in JPY"
},
"deadline": {
"type": [
"string",
"null"
],
"description": "Application deadline (ISO date)"
},
"source_url": {
"type": [
"string",
"null"
],
"description": "Original government page (cite this in addition to _source)"
},
"source_url_shared": {
"type": "boolean",
"description": "True when source_url is a category/index page shared by other grants. When true, cite as \"LocalGov.jp listing\" or pair with the LocalGov.jp _source for per-grant precision."
},
"source_url_sibling_count": {
"type": "integer",
"description": "Number of other grants pointing at the same source_url (0 means dedicated per-grant page)."
}
},
"required": [
"_source",
"_attribution",
"_license",
"id",
"title",
"issuer",
"municipality_code",
"prefecture",
"category",
"summary",
"eligibility",
"amount_max_jpy",
"deadline",
"source_url",
"source_url_shared",
"source_url_sibling_count"
],
"additionalProperties": false,
"description": "Single subsidy/grant record"
}
}
},
"required": [
"central",
"base_token",
"supplementary_count",
"supplementary"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢compare_municipal_subsidies(anchor_municipality_code, category, max_municipalities)
Compare same-category subsidies across nearby municipalities (same prefecture by default). Useful for relocation / siting decisions. Free.
Input Schema
{
"type": "object",
"properties": {
"anchor_municipality_code": {
"type": "string",
"pattern": "^\\d{6}$",
"description": "JIS code of the anchor municipality to compare around"
},
"category": {
"type": "string",
"description": "Category to compare; if omitted, the most-frequent category at the anchor is auto-picked"
},
"max_municipalities": {
"type": "integer",
"minimum": 2,
"maximum": 20,
"description": "Max number of municipalities in the comparison (2-20, default 10)"
}
},
"required": [
"anchor_municipality_code"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"anchor_municipality_code": {
"type": "string"
},
"prefecture": {
"type": "string"
},
"category": {
"type": "string"
},
"municipalities_compared": {
"type": "integer"
},
"per_municipality": {
"type": "array",
"items": {
"type": "object",
"properties": {
"municipality_code": {
"type": "string"
},
"grants": {
"type": "array",
"items": {
"type": "object",
"properties": {
"_source": {
"type": "string",
"description": "Canonical LocalGov.jp URL — cite this as \"via LocalGov.jp\""
},
"_attribution": {
"type": "string",
"description": "Attribution string for CC BY 4.0"
},
"_license": {
"type": "string",
"description": "License hint"
},
"id": {
"type": "string",
"description": "Stable grant id"
},
"title": {
"type": "string",
"description": "Official subsidy/grant title (Japanese)"
},
"issuer": {
"type": "string",
"description": "Issuing authority (ministry, prefecture, or municipality)"
},
"municipality_code": {
"type": [
"string",
"null"
],
"description": "JIS X 0402 6-digit code, null for central government grants"
},
"prefecture": {
"type": [
"string",
"null"
],
"description": "Prefecture name in kanji"
},
"category": {
"type": [
"string",
"null"
],
"description": "Category label"
},
"summary": {
"type": "string",
"description": "Short Japanese summary"
},
"eligibility": {
"type": "array",
"items": {
"type": "string"
},
"description": "Eligibility criteria, free-form"
},
"amount_max_jpy": {
"type": [
"number",
"null"
],
"description": "Maximum subsidy amount in JPY"
},
"deadline": {
"type": [
"string",
"null"
],
"description": "Application deadline (ISO date)"
},
"source_url": {
"type": [
"string",
"null"
],
"description": "Original government page (cite this in addition to _source)"
},
"source_url_shared": {
"type": "boolean",
"description": "True when source_url is a category/index page shared by other grants. When true, cite as \"LocalGov.jp listing\" or pair with the LocalGov.jp _source for per-grant precision."
},
"source_url_sibling_count": {
"type": "integer",
"description": "Number of other grants pointing at the same source_url (0 means dedicated per-grant page)."
}
},
"required": [
"_source",
"_attribution",
"_license",
"id",
"title",
"issuer",
"municipality_code",
"prefecture",
"category",
"summary",
"eligibility",
"amount_max_jpy",
"deadline",
"source_url",
"source_url_shared",
"source_url_sibling_count"
],
"additionalProperties": false,
"description": "Single subsidy/grant record"
}
}
},
"required": [
"municipality_code",
"grants"
],
"additionalProperties": false
}
}
},
"required": [
"anchor_municipality_code",
"prefecture",
"category",
"municipalities_compared",
"per_municipality"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡subscribe_changes(callback_url, hmac_secret, filter, ttl_days)
Create a webhook subscription that pushes grant-change events matching a filter. Cost: $0.20 USDC via x402 (paid by the agent runtime). On 402 response, agent must satisfy payment and retry.
Input Schema
{
"type": "object",
"properties": {
"callback_url": {
"type": "string",
"format": "uri",
"description": "HTTPS URL that will receive POSTed event payloads"
},
"hmac_secret": {
"type": "string",
"minLength": 16,
"maxLength": 256,
"description": "Shared secret used to HMAC-SHA256 sign delivery payloads (16-256 chars)"
},
"filter": {
"type": "object",
"properties": {
"prefecture": {
"type": "string"
},
"municipality_code": {
"type": "string",
"pattern": "^\\d{6}$"
},
"issuer": {
"type": "string"
},
"category": {
"type": "string"
},
"grant_id": {
"type": "string"
}
},
"additionalProperties": false,
"description": "At least one filter dimension required"
},
"ttl_days": {
"type": "integer",
"minimum": 1,
"maximum": 90,
"description": "Subscription lifetime in days (1-90, default 30)"
}
},
"required": [
"callback_url",
"hmac_secret",
"filter"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"subscription_id": {
"type": "string"
},
"callback_url": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"payment_required": {
"type": "boolean"
},
"details": {}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢verify_receipt
Return LocalGov.jp's Ed25519 public key (for offline citation-receipt verification). Callers verify receipt signatures using WebCrypto with this key.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"alg": {
"type": "string",
"description": "Signature algorithm (Ed25519)"
},
"issuer": {
"type": "string",
"description": "Trust anchor name"
},
"pubkey": {
"type": "string",
"description": "Base64-encoded 32-byte Ed25519 public key"
}
},
"required": [
"alg",
"issuer",
"pubkey"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢find_practitioner(grant_id, industry_hint)
Recommend 3 Japanese licensed practitioner types (行政書士 / 税理士 / 中小企業診断士 / 社労士) for the grant's category. Returns role explanations and official-association registry links. **Informational only** — LocalGov.jp does NOT broker, refer, or accept commission for these recommendations.
Input Schema
{
"type": "object",
"properties": {
"grant_id": {
"type": "string",
"description": "Subsidy id (the recommendation is shaped by the grant's category and amount tier)"
},
"industry_hint": {
"type": "string",
"description": "Free-text industry context, e.g. \"飲食業\", \"製造業\""
}
},
"required": [
"grant_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"grant_id": {
"type": "string"
},
"practitioners": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type_code": {
"type": "string"
},
"type_label": {
"type": "string"
},
"registry_url": {
"type": "string"
},
"registry_label": {
"type": "string"
},
"description": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"required": [
"type_code",
"type_label",
"registry_url",
"registry_label",
"description",
"reason"
],
"additionalProperties": false
}
},
"notice": {
"type": "string"
},
"legal_disclaimer": {
"type": "string"
}
},
"required": [
"grant_id",
"practitioners",
"notice",
"legal_disclaimer"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence