meta-data-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NVD_API_KEY | No | API key for NVD CVE database (optional, raises rate limits) | |
| OPENAQ_API_KEY | No | API key for OpenAQ (optional, enables authenticated access) | |
| UN_COMTRADE_API_KEY | No | API key for UN Comtrade (optional, enables higher-tier access) | |
| META_DATA_MCP_CONTACT | No | Email used in User-Agent for polite-pool APIs | meta-data-mcp@example.org |
| META_DATA_MCP_PRELOAD | No | Comma-separated plugin ids to activate at startup, or '*' for all (default unset = discovery-only) | |
| OPENSANCTIONS_API_KEY | No | API key for OpenSanctions (optional, enables authenticated access) | |
| COURTLISTENER_API_TOKEN | No | API token for CourtListener (optional, anonymous works at low volumes) | |
| META_DATA_MCP_AUTH_TOKEN | No | Bearer token for SSE transport authentication (optional) | |
| META_DATA_MCP_PROVENANCE | No | Enable provenance entry on tool results; set to truthy value (optional) | |
| META_DATA_MCP_OAUTH_ISSUER | No | Enable OAuth 2.0 Authorization Code + PKCE; set to server's public base URL (optional) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| opendata_providers_findA | Search the meta-data-mcp plugin registry. Returns plugins that match a free-text query and/or domain/region filters. Use this FIRST when you don't know which plugin can answer a question. If no plugin matches, the response includes a |
| opendata_plugins_createA | Autonomously create a new plugin for this meta-data-mcp server from a YAML spec. Use this when |
| opendata_plugins_draftA | Build a validated YAML plugin spec from structured inputs. Use this BEFORE |
| opendata_explain_choiceA | Explain the scoring breakdown for a provider search. Shows how each provider was ranked using token matching, fuzzy matching, semantic similarity, and metadata filters. |
| opendata_domains_listA | List the controlled domain vocabulary used by the provider registry (e.g. 'health', 'legal', 'finance', 'earth-science'). |
| opendata_regions_listA | List the controlled region vocabulary used by the provider registry (e.g. 'us', 'eu', 'uk', 'global'). |
| opendata_providers_describeA | Fetch the full registry entry for a single provider id — title, description, domains, regions, keywords, homepage, license note, required environment variables. |
| opendata_providers_listA | Enumerate all providers in the opendata-mcp registry (paginated, terse). Returns id, title, domains, regions, and any required env vars per provider. |
| opendata_providers_activateA | Activate a registered provider so its tools become callable in this session. By default the server starts in discovery-only mode — only meta tools (find-providers, list-providers, etc.) are advertised. Activation imports the plugin module and merges its tools into the advertised list, then sends a tools/list_changed notification so the client refetches its catalog. Idempotent. |
| opendata_providers_deactivateA | Remove a previously-activated provider's tools from the session's advertised list. The Python module remains imported (Python caches modules) but its tools no longer appear in tools/list. A tools/list_changed notification is sent so the client refetches. |
| opendata_providers_list_activeA | List the providers currently activated in this session, along with the tool names each contributes. Useful for inspecting why a particular tool is (or isn't) advertised. |
| opendata_health_snapshotA | Snapshot the in-memory provider health registry. Returns a score in [0.0, 1.0] for each requested provider (or every registered provider when called without arguments). Health degrades on recent 5xx / 429 / network failures and decays back toward 1.0 over ~5 minutes; 401/403 are excluded as caller misconfig. The discovery app uses this to paint live health badges next to each search result. |
| opendata_tool_callA | Proxy any activated plugin tool by name. Use this when dynamically activated tools aren't directly callable in your environment. First activate the provider with opendata_providers_activate, then call this tool with the tool name and arguments from the activation response's tool_schemas field. |
| opendata_federate_queryA | Run several plugin tool calls, normalize their results onto a common geography + time axis, and merge them into one cited series. Auto-activates each query's provider. Use this to overlay the same indicator from different open-data sources (e.g. Eurostat vs World Bank) in a single answer. |
| opendata_federate_compareA | Federate several plugin tool calls and report a coverage matrix — which sources cover which geographies and periods — alongside the merged series. Use this to spot gaps or disagreements between open-data sources. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| discover-providers | Ask the LLM to analyze your needs and suggest the best OpenData MCP providers. |
| usecase-financial-research | Analyze economic indicators, exchange rates, and financial markets. |
| usecase-climate-dashboard | Build tools to track weather, climate change, and environmental data. |
| usecase-healthcare-analytics | Track diseases, clinical trials, and public health data. |
| usecase-academic-literature | Search for scholarly articles, preprints, and citations. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| All OpenData Providers | A complete list of all currently registered OpenData MCP providers and their metadata. |
| shape/timeseries/v1 | Time-series shape primitive: line chart + profile panel (min/max/mean/stddev/gaps). Payload: {points: [{date, value, series?}], axes: {x, y}, annotations?}. Loads Plotly from cdn.plot.ly — adopters must allow that origin in the tool's _meta.ui.csp. |
| shape/geofeatures/v1 | GeoFeatures shape primitive (v1): Leaflet map with marker clustering. Payload contract: {features: GeoJSON FeatureCollection | [{lat, lon, attrs}], layers?, facets?}. |
| shape/records/v1 | Records shape primitive: faceted, sortable, paginated table with per-column profile panel. Dependency-free vanilla JS. Payload: {rows, schema?, default_facets?}. |
| app/discovery/v1 | Discovery app: faceted filter, ranked provider list with score breakdown and live health badges, click-to-activate. Wraps opendata_providers_find / list-domains / list-regions / list-active-providers / activate-provider / health-snapshot. Dependency-free vanilla JS. postMessage protocol — host→app: {type: 'tool_result'|'render', id?, tool?, payload}; app→host: {type: 'tool_call', id, name, arguments} (Phase 3 invention; the spec hasn't ratified an app→host shape yet). |
| app/trade-flows/v1 | Bilateral trade-flows app: Sankey (reporter → commodity → partner) + commodity treemap sized by total USD value. Wraps comtrade-trade-data (UN Comtrade). Filters by year, reporter, and commodity. Hover for per-flow detail. D3.js + d3-sankey via CDN. Payload contract: {flows: [{reporter, partner, commodity, value_usd, year?, flow?, ...}]} or raw UN Comtrade {data: [...]} envelope. postMessage protocol — host→app: {type: 'tool_result'|'render', id?, tool?, payload}; app→host: {type: 'tool_call', id, name, arguments} (Phase 3 invention). |
| app/vulnerability/v1 | Vulnerability synthesis app: CVSS v3 radar, KEV exploitation badge, EPSS probability + percentile gauges, and OSV affected-packages table. Wraps nvd-search-cves / nvd-get-cve / nvd-cve-history / cisa-kev-list / cisa-kev-get / osv-get-vulnerability / osv-query-package / epss-scores. Dependency-free vanilla JS + inline SVG. postMessage protocol — host→app: {type: 'tool_result'|'render', id?, tool?, payload}; app→host: {type: 'tool_call', id, name, arguments} (Phase 3 invention). |
| app/entity-graph/v1 | Entity-graph app: force-directed graph of entities and their relationships across four providers — OpenAlex (works/authors), Wikidata (search results), OpenSanctions (persons/companies), Crossref (co-author overlay via crossref-works-by-author). Payload contract: {nodes:[{id,label,type,attrs}], edges:[{source,target,label,weight?}]}. D3.js v7 force layout via CDN; degrades to flat list if D3 blocked. postMessage protocol — host→app: {type: 'tool_result'|'render', id?, tool?, payload}; app→host: {type: 'tool_call', id, name, arguments}. |
| app/museum/v1 | Museum browser app: lazy-loaded image grid of Met Museum objects with click-to-open provenance / artist / date / medium detail panel and a free-text search box. Wraps met-search + met-get-object. Payload contract: {objects: [{id, title, artist, date, medium, image_url, primary_image_url, url, provenance, tags}, ...], facets?: [...]}. Raw {objectIDs: [...]} from met-search is also accepted — the bundle renders an id-only fallback grid. Dependency-free vanilla JS + CSS grid. postMessage protocol — host→app: {type: 'tool_result'|'render', id?, tool?, payload}; app→host: {type: 'tool_call', id, name, arguments} (Phase 3 invention). |
| app/molecular/v1 | Molecular structure app: 3D viewer for proteins (RCSB PDB) and small molecules (PubChem). Renders via 3Dmol.js (BSD-3, CDN-loaded). Cartoon style for chains, stick+sphere for ligands. Wraps pubchem-compound and pdb-entry. postMessage protocol — host→app: {type: 'tool_result'|'render', id?, tool?, payload}; app→host: {type: 'tool_call', id, name, arguments} (Phase 3 invention). Payload envelope: {structure: {format, data?|url?, identifier}, metadata: {name, title, source, attrs}}. |
| app/news-tone/v1 | News-tone app: per-article tone lollipops on a daily-volume timeline, average-tone overlay, and country co-occurrence chord diagram. Wraps gdelt-article-search (events + countries) and gdelt-volume-timeline (tone overlay). Dependency-free vanilla JS + inline SVG. Payload contract — caller may push either a raw GDELT response (sniffed by shape) or a unified envelope {events:[{date,tone,title,country,url}], country_pairs:[{a,b,weight}], facets:{tone_timeline,volume_timeline,query}}. postMessage protocol — host→app: {type: 'tool_result'|'render', id?, tool?, payload}; app→host: {type: 'tool_call', id, name, arguments} (Phase 3 invention). |
| app/network-topology/v1 | Network topology app: force-directed ASN graph with peer / upstream / downstream edges. Wraps ripestat-asn-neighbours, ripestat-asn-neighbours-history (RIPE NCC RIPEstat) and bgpview-asn-peers, bgpview-asn-upstreams, bgpview-asn-downstreams (BGPView, currently offline — binding kept for protocol completeness). Payload contract: {asns: [{asn, name?, country?, rank?}], edges: [{source_asn, target_asn, relationship: peer|upstream|downstream, weight?}], focus_asn?}. D3.js v7 via jsdelivr (only the force layout). postMessage protocol — host→app: {type: 'tool_result'|'render', id?, tool?, payload}; app→host: {type: 'tool_call', id, name, arguments} (Phase 3 invention). |
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/derekslinz/meta-data-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server