{
  "markdown": "# Costory FinOps MCP: agent skills and plugin\n\nThe **Costory FinOps MCP** is a hosted [Model Context Protocol](https://modelcontextprotocol.io) server that lets Claude, Cursor, VS Code, Codex, or Dust answer questions about your cloud and AI spend.\n\nFeeding raw AWS or GCP billing lines into a prompt does not work. Costory acts as a **context layer**: it normalizes billing from AWS, GCP, Azure, Snowflake, Datadog, OpenAI, and Anthropic into one schema, allocates shared and untagged cost from real usage metrics, and correlates spend with deploy events and incidents. The assistant then calls structured tools against data that is already allocated and explained.\n\nThis repository holds the **agent skills** that sit on top of those tools: the workflows that turn \"why did prod cost jump last week\" into the right sequence of tool calls.\n\n- **Full MCP documentation:** [docs.costory.io/features/mcp](https://docs.costory.io/features/mcp)\n- **Endpoint:** `https://app-api.costory.io/mcp`\n- **Auth:** OAuth, no IAM credentials, no Docker, no local server\n\n## Connect the MCP\n\nYou need a Costory workspace with [billing data connected](https://docs.costory.io/get-started/welcome). A 15-day trial is available.\n\n**Claude Desktop / Claude Code / Cursor / VS Code:** add a custom connector pointing at `https://app-api.costory.io/mcp`, then complete the OAuth login in the browser window that opens. Per-client walkthroughs with screenshots are in the [MCP docs](https://docs.costory.io/features/mcp).\n\nThis repo ships an [`.mcp.json`](./.mcp.json) you can copy:\n\n```json\n{\n  \"mcpServers\": {\n    \"costory\": {\n      \"type\": \"http\",\n      \"url\": \"https://app-api.costory.io/mcp\",\n      \"oauth\": { \"callbackPort\": 8080 }\n    }\n  }\n}\n```\n\nFor clients without native remote-MCP support, proxy it with `mcp-remote`:\n\n```json\n{\n  \"mcpServers\": {\n    \"costory\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mcp-remote\", \"https://app-api.costory.io/mcp\"]\n    }\n  }\n}\n```\n\n## MCP tools reference\n\nThe server exposes tools in five groups. Names and payloads are versioned; the\n[API reference](https://docs.costory.io/api-reference/overview) is the source of truth.\n\n| Group | Tools | What they do |\n|---|---|---|\n| Orientation | `get_context`, `search`, `get`, `suggest_groupby`, `suggest_usage_metrics`, `suggest_actions` | Discover dimensions, dashboards, metrics, and the right way to slice a question |\n| Query | `query`, `list_metrics`, `list_virtual_dimensions` | Cost, usage, metric, formula, and budget queries with period-over-period comparison |\n| Allocation | `create_virtual_dimension_draft`, `update_virtual_dimension_draft`, `preview_virtual_dimension_draft`, `publish_virtual_dimension`, `virtual_dimension_overlap_matrix` | Define custom cost axes with ordered CEL rules, preview, then publish |\n| Reporting | `create_report`, `update_report`, `preview_report_widget`, `run_report_now`, `create_dashboard`, `update_dashboard` | Scheduled Slack, Teams, and email reports plus dashboards built from chat |\n| Alerting and events | `create_alert`, `preview_alert`, `list_alerts`, `create_event`, `update_event` | Cost and budget alerts, and event annotations for correlation |\n\nWrite tools act only inside your Costory workspace. Query scoping follows the calling user's workspace role.\n\n## FinOps skills\n\nSkills are the workflow layer: each one encodes how to sequence the tools above for a class of question, so the assistant does not have to rediscover it.\n\n| MCP `skillId` | Use when |\n|---|---|\n| `cost-change-investigation` | Explain a cost change with contribution, timing, usage, metric, event, alert, and terminology evidence |\n| `query` | Cost, usage, metric, formula, and budget investigation. Explorer period-over-period only; hands off \"what changed\" to `reports` Explain |\n| `virtual-dimensions` | Create, edit, preview, and publish custom cost axes with ordered CEL rules |\n| `dashboards` | Create or extend dashboards with context-first widget inheritance and overview generation |\n| `reports` | Scheduled Slack, Teams, and email reports, and preview-first DIGEST to explain last month's cost |\n| `recipes` | Ready-made tracking designs matched to an outcome, then handed off to the skills above to build |\n\nRecipes currently cover budget-vs-actual dashboards, EC2 spike alerts, prod-vs-R&D splits, untagged coverage, marketplace spend, provider credits, namespace cost, compute drilldowns, and period-change explanation. See [`plugins/costory/skills/recipes/`](./plugins/costory/skills/recipes/).\n\n## Install as a plugin\n\n```bash\n# Claude Code\nclaude plugin marketplace add costory-io/costory-finops-mcp-skills\nclaude plugin install costory@costory\n\n# Codex\ncodex plugin marketplace add costory-io/costory-finops-mcp-skills\ncodex plugin add costory@costory\n```\n\n## Layout\n\n```\n.mcp.json                              ← ready-to-copy MCP client config\nskills.json                            ← MCP skillId -> SKILL.md path\n.claude-plugin/marketplace.json\nplugins/costory/\n  .claude-plugin/plugin.json\n  skills/\n    cost-change-investigation/SKILL.md\n    query/SKILL.md\n    virtual-dimensions/SKILL.md\n    dashboards/SKILL.md\n    reports/SKILL.md\n    recipes/SKILL.md  + recipe library\n```\n\n## Serving skills over MCP (`get_skill`)\n\n[`skills.json`](./skills.json) maps each MCP `skillId` to a `SKILL.md` path. When wiring costory-app, load the file from this repo (or a pinned release), strip optional YAML frontmatter, and return the markdown body.\n\n```json\n{\n  \"skillId\": \"dashboards\",\n  \"path\": \"plugins/costory/skills/dashboards/SKILL.md\"\n}\n```\n\n## Authoring\n\nSee [AGENTS.md](./AGENTS.md) for layout rules, version bumps, and validation. Use [SKILL_TEMPLATE.md](./SKILL_TEMPLATE.md) when adding a skill.\n\n## License\n\nApache-2.0, see [LICENSE](./LICENSE).\n",
  "bytes": 5774,
  "sha": "4d5319728e5a8748cf6507ba23dd8db382364c2f77d4cba9e4166f753f9e28a0",
  "repo_slug": "costory-io/costory-finops-mcp-skills",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_costory_finops_2e79ec68/readme"
}