{
  "markdown": "<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"docs/src/assets/jcge_agentinterface_logo_dark.png\">\n  <source media=\"(prefers-color-scheme: light)\" srcset=\"docs/src/assets/jcge_agentinterface_logo_light.png\">\n  <img alt=\"JCGE AgentInterface logo\" src=\"docs/src/assets/jcge_agentinterface_logo_light.png\" height=\"150\">\n</picture>\n\n# JCGEAgentInterface\n\n<!-- mcp-name: io.github.equicirco/JCGEAgentInterface.jl -->\n\n## What is a CGE?\nA Computable General Equilibrium (CGE) model is a quantitative economic model that represents an economy as interconnected markets for goods and services, factors of production, institutions, and the rest of the world. It is calibrated with data (typically a Social Accounting Matrix) and solved numerically as a system of nonlinear equations until equilibrium conditions (zero-profit, market-clearing, and income-balance) hold within tolerance.\n\n## What is JCGE?\n[JCGE](https://jcge.org) is a block-based CGE modeling and execution framework in Julia. It defines a shared RunSpec structure and reusable blocks so models can be assembled, validated, solved, and compared consistently across packages.\n\n## What is this package?\nMCP-compatible interface layer for agents that need to discover, load, solve, validate, and inspect\n\n[JCGE](https://jcge.org) models. It exposes a small action API and a standard MCP stdio server over the same functionality.\n\nThe agent surface is intentionally focused on:\n\n- discovering installed JCGE packages and available functionality,\n- listing and describing reusable `JCGEBlocks` components,\n- guiding users through CGE model development with JCGE blocks,\n- guiding formulation choices such as equality systems, inequalities, MCP/complementarity, and optimization-style representations,\n- guiding calibration with the currently available `JCGECalibrate` loaders, SAM helpers, labeled containers, and parameter workflows,\n- guiding solver choice and reporting from generated equations,\n- solving registered `RunSpec` models,\n- validating solved contexts,\n- rendering implemented equations, blocks, and symbols through `JCGEOutput`,\n- reporting or applying updates to released JCGE packages in the active Julia environment.\n\nThe package services are grouped in the documentation as discovery, modeling\nguidance, model interaction, reporting, environment maintenance, and MCP runtime\nservices. See `docs/src/services.md` for the full service contract and current\nlimits.\n\n## MCP server\n\nThe standard MCP transport is:\n\n```julia\nusing JCGEAgentInterface\nserve(transport=:mcp_stdio)\n```\n\nMinimal local MCP client configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"jcge\": {\n      \"command\": \"julia\",\n      \"args\": [\n        \"--project=/path/to/JCGEAgentInterface.jl\",\n        \"-e\",\n        \"using JCGEAgentInterface; serve(transport=:mcp_stdio)\"\n      ]\n    }\n  }\n}\n```\n\nThe MCP tools use the `jcge_` prefix:\n\n- `jcge_capabilities`\n- `jcge_list_blocks`\n- `jcge_describe_block`\n- `jcge_modeling_guide`\n- `jcge_formulation_guide`\n- `jcge_solver_guide`\n- `jcge_calibration_guide`\n- `jcge_reporting_guide`\n- `jcge_package_status`\n- `jcge_update_packages`\n- `jcge_list_models`\n- `jcge_load_model`\n- `jcge_solve`\n- `jcge_validate_model`\n- `jcge_render_model`\n- `jcge_export_results`\n\nThe original custom JSON action protocol remains available:\n\n`serve()` reads JSON requests from stdin and writes JSON responses to stdout.\n\n## Docker and MCP Registry\n\nOCI-oriented MCP registry metadata is declared in [`server.json`](server.json).\n\nFuture version tags matching `v*.*.*` trigger `.github/workflows/publish-mcp.yml`, which:\n\n- verifies the tag version matches `Project.toml`,\n- builds the MCP Docker image,\n- pushes it to GitHub Container Registry as `ghcr.io/equicirco/jcge-agentinterface-mcp:<release-version>`,\n- updates `server.json` for that release,\n- publishes the metadata to the official MCP Registry through GitHub OIDC.\n\nThe Docker image includes the MCP ownership label required by the MCP Registry:\n\n```dockerfile\nLABEL io.modelcontextprotocol.server.name=\"io.github.equicirco/JCGEAgentInterface.jl\"\n```\n\nNo release, tag, image publication, or registry publication is performed by editing this repository.\n\n## How to cite\n\nIf you use the [JCGE](https://jcge.org) framework, please cite:\n\nBoero, R. *JCGE - Julia Computable General Equilibrium Framework* [software], 2026.\nDOI: 10.5281/zenodo.18282436\nURL: https://JCGE.org\n\n```bibtex\n@software{boero_jcge_2026,\n  title  = {JCGE - Julia Computable General Equilibrium Framework},\n  author = {Boero, Riccardo},\n  year   = {2026},\n  doi    = {10.5281/zenodo.18282436},\n  url    = {https://JCGE.org}\n}\n```\n\nIf you use this package, please cite:\n\nBoero, R. *JCGEAgentInterface.jl - MCP-compatible agent interface for JCGE tooling.* [software], 2026.\nDOI: 10.5281/zenodo.18335121\nURL: https://AgentInterface.JCGE.org\nSourceCode: https://github.com/equicirco/JCGEAgentInterface.jl\n\n```bibtex\n@software{boero_jcgeagentinterface_2026,\n  title  = {JCGEAgentInterface.jl - MCP-compatible agent interface for JCGE tooling.},\n  author = {Boero, Riccardo},\n  year   = {2026},\n  doi    = {10.5281/zenodo.18335121},\n  url    = {https://AgentInterface.JCGE.org}\n}\n```\n\nIf you use a specific tagged release, please cite the version DOI assigned on Zenodo for that release (preferred for exact reproducibility).\n",
  "bytes": 5325,
  "sha": "8862e7ea009b6b5f63a5081d07612843ca2ba9e6e84e45a374749dee7b66ee06",
  "repo_slug": "equicirco/jcgeagentinterface.jl",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_equicirco_jcgeagentinterface_j_aef74dc8/readme"
}