veda-mcp-app
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@veda-mcp-appList the available STAC collections"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
veda-mcp-app
MCP App for the VEDA STAC catalog: tools that render interactive widgets (collection picker, raster map) inline in Claude or ChatGPT.
ARCHITECTURE.md — MCP concepts and how this repo maps onto them
CONTEXT.md — domain glossary
Tools
search_collections(query?, limit?)— search/list collections; renders the picker, clicking a card announces the pick in the chat.show_map(collectionId, datetime)— single-layer raster map over a date range (YYYY-MM-DDorYYYY-MM-DD/YYYY-MM-DD, clamped to the collection's temporal extent). Non-mappable collections are rejected with a corrective error.compare_map(leftCollectionId, leftDatetime, rightCollectionId, rightDatetime)— swipe-compare; same collection twice = before/after.run_demo()— map ofno2-monthly-difffor 2020-2021. Ask the host to "run a demo of the VEDA MCP app".
Related MCP server: spacetrack-mcp
Quick start
npm install # auto-builds dist/ (prepare script)
npm run setup:claude # register with Claude Desktop + Claude CodeRestart Claude Desktop, then ask it to "run a demo of the VEDA MCP app".
Local development
Prerequisites: Node 22. No credentials — the server reads the public VEDA
catalog (https://dev.openveda.cloud/api/stac, override with VEDA_STAC_ROOT).
npm start # build + serve over HTTP (http://localhost:3001/mcp)
npm run serve:stdio # stdio from source (Claude Desktop / Claude Code)
npm run dev # watch UI bundles + restart server on change
npm test # unit tests (vitest)
npm run build # typecheck + UI bundles + server -> dist/To run the compiled output exactly as production does:
npm run build, then npm run start:prod.
To verify the widgets end-to-end without Claude, use basic-host (the
reference host in the ext-apps repo,
examples/basic-host): it expects this server at http://localhost:3001/mcp
and renders the widgets in a sandboxed iframe with debug panels.
Deployment (Heroku)
HTTP-first: POST /mcp (Streamable HTTP, stateless) + GET /health. Needs a
long-lived process — not serverless. Procfile runs npm run start:prod;
engines.node: 22.x pins the runtime.
heroku create <app-name>
heroku config:set MCP_PATH_TOKEN=$(openssl rand -hex 16)
git push heroku mainUse a Basic dyno (Eco dynos sleep; a cold start mid-demo takes ~10-30 s).
Env vars (all optional):
MCP_PATH_TOKEN— shared-secret path segment: endpoint moves to/mcp/<token>, bare/mcp404s. Letters/digits/-/_only. Recommended for any public deploy.VEDA_STAC_ROOT/VEDA_RASTER_ROOT— catalog/titiler roots.
Verify: curl https://<app-name>.herokuapp.com/health →
{"status":"ok","transport":"http"}. The connector URL is
https://<app-name>.herokuapp.com/mcp/<token>.
Connecting
claude.ai / Claude Desktop: Settings → Connectors → Add custom connector → paste the connector URL. No auth (the token in the URL is the gate). Widgets render inline.
Claude Code:
claude mcp add --transport http veda https://<app-name>.herokuapp.com/mcp/<token>ChatGPT: Settings → Connectors → Create new connector → MCP server URL = the connector URL, auth: none.
Troubleshooting
502 after deploy —
heroku logs --tail; if theVEDA MCP App (HTTP transport)banner is absent, the process crashed at boot (config validation errors print the reason).404 on
/mcp— expected whenMCP_PATH_TOKENis set; use/mcp/<token>.First request hangs ~30 s — Eco dyno waking. Upgrade to Basic.
HTTPS required — Claude and ChatGPT only connect to
https://endpoints.Tool answers "cannot be mapped" / "unknown collection" — corrective by design; the model retries with a valid collection.
Scripts
npm run setup:claude— register with local Claude hosts (idempotent). Flags:--print,--remove,--desktop-only,--code-only.npm test/npm run build/npm start/npm run dev— see above.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityAmaintenanceMCP server providing token-efficient access to OpenAPI/Swagger specs via MCP Resources for client-side exploration.Last updated12976MIT
- Flicense-qualityCmaintenanceMCP server that wraps the NASA Space-Track API to provide tools for TLE lookup, conjunction query, and satellite catalog search.Last updated
- AlicenseCqualityCmaintenanceMCP server for the Geopera geospatial data platform that enables AI agents to discover imagery, place and manage orders, and run analytics using the same API as other Geopera clients.Last updated100MIT
- Flicense-qualityDmaintenanceMCP server for accessing SPEAR model output from various sources (AWS, STAC API, local) and integrating with AI assistants like Claude Desktop or a SPEAR Climate Chatbot.Last updated
Related MCP Connectors
MCP server for Mireye Earth — federal-source-cited geospatial data for any MCP-aware agent.
Hosted weather data MCP for discovery, validation, and OAuth-protected GribStream queries.
MCP server for Brazilian Federal Senate open data (legislative, administrative, e-Cidadania).
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/vgeorge/veda-mcp-app'
If you have feedback or need assistance with the MCP directory API, please join our Discord server