原始内容
Vantage MCP Server
Use natural language to explore your organization's cloud costs via MCP clients, like Claude, Cursor, and others. Ask questions about your organization's previous and current cloud cost spend, cost tagging, provider integrations, and more.

About
The Vantage MCP Server exposes tools for listing, querying, and creating Vantage resources. Tools are defined in /src/tools; see the Vantage MCP documentation for the full tool list, prompting examples, and product details.
This repository supports two deployment modes:
| Mode | Best for |
|---|---|
Hosted (Remote) MCP — Vantage-managed at https://mcp.vantage.sh/mcp |
Most users and teams. OAuth sign-in, no local server to run. |
Self-Hosted (Local) MCP — stdio via npx -y vantage-mcp-server or this repo |
API-token auth, air-gapped environments, or contributing to this codebase. |
Start with the hosted MCP unless you have a specific reason to self-host.
Setup Instructions
General
The hosted MCP server uses Streamable HTTP with OAuth 2.1. After connecting a client, a browser window prompts you to sign in to Vantage — the same account you use at console.vantage.sh.
Server URL: https://mcp.vantage.sh/mcp
Clients that support remote MCP natively can connect directly to that URL. For clients that only support stdio, use the mcp-remote bridge (see Visual Studio Code below).
API token auth: If your client or script cannot complete OAuth, pass a Vantage API token as a Bearer token instead:
Authorization: Bearer <your_vantage_api_token>
Claude Code
claude mcp add --transport http vantage https://mcp.vantage.sh/mcp
Then run /mcp in a Claude Code session to complete the OAuth flow.
Codex
codex mcp add vantage --url https://mcp.vantage.sh/mcp
Run codex mcp login vantage if Codex prompts you to authenticate.
Cursor
The recommended install is the official Vantage plugin — in the Cursor chat panel, run:
/add-plugin vantage
To configure manually (for example, to commit .cursor/mcp.json to a repo):
{
"mcpServers": {
"VantageMCP": {
"url": "https://mcp.vantage.sh/mcp"
}
}
}
Open Cursor Settings → Tools & MCP → New MCP Server to edit mcp.json, or create .cursor/mcp.json in your project root.
Claude
Claude.ai (Team / Enterprise): Settings → Connectors → Add custom connector — enter https://mcp.vantage.sh/mcp.
Claude Desktop: Settings → Connectors — add a custom connector with the same URL.
Goose
- Extensions → Add custom extension
- Type: Streamable HTTP
- Endpoint:
https://mcp.vantage.sh/mcp
Complete the OAuth flow when Goose connects.
Visual Studio Code
{
"mcpServers": {
"vantage": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.vantage.sh/mcp"]
}
}
}
Or use the command palette: MCP: Add Server → Command (stdio) and enter:
npx -y mcp-remote https://mcp.vantage.sh/mcp
Windsurf
Under Cascade → MCP servers → Add custom server, add:
{
"mcpServers": {
"vantage": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.vantage.sh/mcp"]
}
}
}
Zed
In Zed settings, add:
{
"context_servers": {
"vantage": {
"source": "custom",
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.vantage.sh/mcp"],
"env": {}
}
}
}
Other clients
For any stdio-only MCP client, use:
- Command:
npx - Arguments:
-y mcp-remote https://mcp.vantage.sh/mcp
See the MCP clients list and the Vantage MCP documentation for additional clients (including ChatGPT via the Vantage app).
Authorize
After configuring your client, you may need to restart it. A browser window opens for Vantage OAuth — sign in and click Allow Access. You can revoke access anytime under Vantage Settings → API Access Tokens → MCP Server Token.
Try a prompt like: "In Vantage, which workspaces do I have access to?"
Self-Hosted (Local) MCP
Use self-hosted mode when you need API-key auth without OAuth, or when developing against this repository.
npm package (recommended for self-host)
Install nothing — configure your MCP client to run the published package:
{
"mcpServers": {
"Vantage": {
"command": "npx",
"args": ["-y", "vantage-mcp-server"],
"env": {
"VANTAGE_TOKEN": "<your_vantage_api_token>"
}
}
}
}
Create a token in the Vantage console. Requires Node.js 20+.
From this repository (contributors)
For working on the MCP server itself:
git clone https://github.com/vantage-sh/vantage-mcp-server
cd vantage-mcp-server
npm install
Configure your client to run the local entrypoint (replace <path_to_repository> and <personal_vantage_api_token>):
{
"mcpServers": {
"Vantage": {
"command": "npx",
"args": ["tsx", "<path_to_repository>/src/local.ts"],
"env": { "VANTAGE_TOKEN": "<personal_vantage_api_token>" }
}
}
}
Or use the repo's installed binary directly:
{
"mcpServers": {
"Vantage": {
"command": "<path_to_repository>/node_modules/.bin/tsx",
"args": ["<path_to_repository>/src/local.ts"],
"env": { "VANTAGE_TOKEN": "<personal_vantage_api_token>" }
}
}
}
Test from the terminal: npm run local (requires VANTAGE_TOKEN in the environment).
Local Development
To develop the hosted worker locally:
cp .dev.vars.example .dev.vars.development
# Edit .dev.vars.development — set VANTAGE_MCP_TOKEN to your API token
npm run dev
Wrangler serves the worker at http://localhost:8787 (default). Setting VANTAGE_MCP_TOKEN bypasses OAuth for local testing.
Running Evals
New tools must ship with an eval file under evals/<tool>.eval.ts (or evals/<resource>/<tool>.eval.ts). See .agents/skills/writing-evals/SKILL.md (tool authoring: .agents/skills/writing-mcp-tools/SKILL.md).
npm run eval -- ./evals/<...>/<your-tool>.eval.ts
Commit the updated evals/evalite.db alongside the tool change. Evals are not run in CI.
Browse results locally: npm run eval:export && open ./evalite-export/index.html. A live UI is published at https://vantage-sh.github.io/vantage-mcp-server/.
Available Scripts
npm run dev— Start the Wrangler development servernpm run local— Run the stdio MCP server locallynpm run inspect— Launch the MCP inspectornpm run test— Run Vitestnpm run format/npm run lint:fix— Biome format and lintnpm run type-check— TypeScript checknpm run cf-typegen— Generate Cloudflare Worker typesnpm run generate-tools-index— Regeneratesrc/tools/index.tsafter tool changesnpm run generate-resources-index— Regeneratesrc/resources/index.tsafter resource changesnpm run eval— Run evals (npm run eval -- ./evals/<path>for one file)npm run eval:dev— Evalite watch mode with UI onlocalhost:3006npm run eval:export— Static HTML bundle fromevals/evalite.db
Contribution Guidelines
- Fork this repository and create a branch:
git checkout -b feature/my-feature. - Make your changes.
- Verify locally:
npm run format npm run lint:fix npm run type-check npm test -- --run - Submit a pull request.
See AGENTS.md for conventions when adding tools, evals, or resources.
License
See LICENSE.md for commercial and non-commercial licensing details.