MCP Server

Agam

in.ashwingopalsamy.home/agam-journal
Data & Analytics Public & reachable MCP 2025-11-25

What this MCP does

Searches and reads public journal records about construction costs and work progress with exact values, sources, precision, and freshness.

get_content
Read a public journal record
Retrieve a stable ID returned by search, including exact INR/paise values, precision, source and freshness. Read-only; private evidence and arbitrary paths are unavailable.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9-]{0,119}$', 'description': 'Stable published content ID; never a path or URL.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'kind', 'title', 'description', 'canonical', 'last_updated', 'revision', 'language', 'visibility', 'source', 'review', 'text'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9-]{0,119}$', 'description': 'Stable published content ID; never a path or URL.'}, 'cost': {'type': 'object', 'required': ['amount', 'category', 'scope', 'kind', 'counted', 'precision', 'from', 'to', 'coverage'], 'properties': {'to': {'type': ['string', 'null']}, 'from': {'type': ['string', 'null']}, 'kind': {'type': 'string'}, 'scope': {'type': 'string'}, 'amount': {'type': 'object', 'required': ['currency', 'minor_unit', 'amount_minor', 'decimal'], 'properties': {'decimal': {'type': 'string'}, 'currency': {'type': 'string', 'const': 'INR'}, 'minor_unit': {'type': 'string', 'const': 'paise'}, 'amount_minor': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': False}, 'counted': {'type': 'boolean'}, 'category': {'type': 'string'}, 'coverage': {'type': 'string'}, 'precision': {'enum': ['day', 'month', 'billing_cycle', 'undated', 'cumulative'], 'type': 'string'}}, 'additionalProperties': False}, 'kind': {'enum': ['page', 'summary', 'cost', 'work'], 'type': 'string'}, 'text': {'type': 'string'}, 'work': {'type': 'object', 'required': ['date', 'date_semantics', 'state', 'crew', 'crew_precision', 'activities'], 'properties': {'crew': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}, 'date': {'type': 'string'}, 'state': {'enum': ['worked', 'no_work'], 'type': 'string'}, 'activities': {'type': 'array', 'items': {'type': 'string'}}, 'crew_precision': {'enum': ['exact', 'minimum', 'unknown'], 'type': 'string'}, 'date_semantics': {'type': 'string', 'const': 'Local calendar day in Asia/Kolkata, not an instant'}}, 'additionalProperties': False}, 'title': {'type': 'string'}, 'review': {'anyOf': [{'enum': ['owner_reviewed', 'source_checked'], 'type': 'string'}, {'type': 'null'}]}, 'source': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url', 'recorded_at', 'precision'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'precision': {'enum': ['day', 'month'], 'type': 'string'}, 'recorded_at': {'type': 'string'}}, 'additionalProperties': False}}, 'summary': {'type': 'object', 'required': ['total', 'monthly', 'categories', 'work_entries', 'worker_days_minimum', 'worker_days_is_lower_bound', 'stage'], 'properties': {'stage': {'type': 'object', 'required': ['datum', 'lintel_ft_approx', 'walls_ft_approx', 'roof_cast', 'basement_ft_stated', 'slab_in_stated', 'roof_work', 'roof_work_as_of'], 'properties': {'datum': {'type': 'string', 'const': 'basement_floor'}, 'roof_cast': {'type': 'boolean'}, 'roof_work': {'type': ['string', 'null']}, 'slab_in_stated': {'type': ['number', 'null']}, 'roof_work_as_of': {'type': ['string', 'null']}, 'walls_ft_approx': {'type': 'number'}, 'lintel_ft_approx': {'type': 'number'}, 'basement_ft_stated': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'total': {'type': 'object', 'required': ['currency', 'minor_unit', 'amount_minor', 'decimal'], 'properties': {'decimal': {'type': 'string'}, 'currency': {'type': 'string', 'const': 'INR'}, 'minor_unit': {'type': 'string', 'const': 'paise'}, 'amount_minor': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': False}, 'monthly': {'type': 'array', 'items': {'type': 'object', 'required': ['month', 'amount'], 'properties': {'month': {'type': 'string'}, 'amount': {'type': 'object', 'required': ['currency', 'minor_unit', 'amount_minor', 'decimal'], 'properties': {'decimal': {'type': 'string'}, 'currency': {'type': 'string', 'const': 'INR'}, 'minor_unit': {'type': 'string', 'const': 'paise'}, 'amount_minor': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'categories': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'amount'], 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}, 'amount': {'type': 'object', 'required': ['currency', 'minor_unit', 'amount_minor', 'decimal'], 'properties': {'decimal': {'type': 'string'}, 'currency': {'type': 'string', 'const': 'INR'}, 'minor_unit': {'type': 'string', 'const': 'paise'}, 'amount_minor': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'work_entries': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'worker_days_minimum': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'worker_days_is_lower_bound': {'type': 'boolean'}}, 'additionalProperties': False}, 'language': {'type': 'string', 'const': 'en'}, 'revision': {'type': 'string'}, 'canonical': {'type': 'string', 'format': 'uri'}, 'visibility': {'type': 'string', 'const': 'public'}, 'description': {'type': 'string'}, 'last_updated': {'type': 'string'}}, 'additionalProperties': False}
search_content
Search journal records
Search literal words in public normalized journal records. Use before reading a returned ID. No private results, generated answers or external fetches. Cursor expires after one hour; maximum 100 records.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['q'], 'properties': {'q': {'type': 'string', 'maxLength': 160, 'minLength': 1, 'description': 'Literal words in public titles and normalized descriptions; no regex or generated answers.'}, 'kind': {'enum': ['page', 'summary', 'cost', 'work'], 'type': 'string'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Page size; default 20, maximum 100.'}, 'cursor': {'type': 'string', 'maxLength': 2048, 'description': 'Opaque next_cursor from the preceding page; expires after one hour.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['items', 'next_cursor', 'snapshot', 'limit'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'kind', 'title', 'description', 'canonical', 'last_updated', 'revision'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9-]{0,119}$', 'description': 'Stable published content ID; never a path or URL.'}, 'kind': {'enum': ['page', 'summary', 'cost', 'work'], 'type': 'string'}, 'title': {'type': 'string'}, 'revision': {'type': 'string'}, 'canonical': {'type': 'string', 'format': 'uri'}, 'description': {'type': 'string'}, 'last_updated': {'type': 'string'}}, 'additionalProperties': False}}, 'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'snapshot': {'type': 'string'}, 'next_cursor': {'type': ['string', 'null']}}, 'additionalProperties': False}
Added
get_content
Oct. 5, 2026, 2:40 a.m.
Added
search_content
Oct. 5, 2026, 2:40 a.m.