Skip to main content
Glama

MCP Server Cards

An MCP server for generating, validating, and discovering MCP server cards — a standardized way to describe MCP servers so AI agents can automatically find and understand them.

What are Server Cards?

Server Cards are machine-readable JSON files that describe an MCP server's capabilities, similar to how robots.txt describes crawling rules or manifest.json describes web apps. They live at .well-known/mcp-server-card.json and contain:

  • Name & Description — What the server does

  • Tools — List of available tools with descriptions

  • Author & Repository — Who built it, where to find the source

  • Categories — Tags for discovery and search

  • Pricing — Whether it's free, freemium, or paid

  • Transport — Whether it uses stdio, HTTP, or both

  • Auth — Whether authentication is required

Related MCP server: Agent Identity MCP Server

Why Server Cards?

As the MCP ecosystem grows, agents need a way to discover and evaluate servers automatically. Server Cards solve this by providing:

  1. Automatic Discovery — Agents can check .well-known/mcp-server-card.json on any domain

  2. Standardized Metadata — Consistent format for comparing servers

  3. Capability Description — Agents know what tools are available before connecting

  4. Trust Signals — Author, repository, and pricing information

Installation

pip install agent-server-card-mcp

Usage

As MCP Server

{
  "mcpServers": {
    "server-cards": {
      "command": "server-card-server"
    }
  }
}

With uvx

{
  "mcpServers": {
    "server-cards": {
      "command": "uvx",
      "args": ["agent-server-card-mcp"]
    }
  }
}

Available Tools

Tool

Description

generate_card

Generate a .well-known/mcp-server-card.json for any MCP server

validate_card

Validate a server card against the JSON schema

discover

Try to discover a server card from a URL via .well-known

search

Search indexed server cards by keyword

register

Register a server card in the local index

schema

Get the full JSON schema for server cards

Server Card Example

{
  "name": "weather-mcp-server",
  "description": "Provides real-time weather data and forecasts",
  "version": "1.0.0",
  "author": "WeatherCorp",
  "repository": "https://github.com/example/weather-mcp",
  "tools": [
    {
      "name": "get_weather",
      "description": "Get current weather for a location"
    },
    {
      "name": "get_forecast",
      "description": "Get 7-day weather forecast"
    }
  ],
  "categories": ["weather", "climate", "data"],
  "pricing": "free",
  "auth_required": false,
  "transport": "stdio"
}

Server Card Schema

Required fields:

  • name — Unique server name

  • description — What the server does

  • version — Semantic version

  • tools — Array of {name, description} objects

Optional but recommended:

  • author — Author or organization

  • repository — Source code URL

  • categories — Tags for searchability

  • pricingfree | freemium | paid | open-source

  • auth_required — Boolean

  • transportstdio | http | both

How Discovery Works

  1. An agent wants to find MCP servers on example.com

  2. It requests https://example.com/.well-known/mcp-server-card.json

  3. If the file exists, the agent parses it and learns about available tools

  4. The agent can then decide whether to connect based on the metadata

This follows the same pattern as .well-known/openid-configuration for OAuth or .well-known/ai-plugin.json for ChatGPT plugins.


More MCP Servers by AiAgentKarl

Category

Servers

🔗 Blockchain

Solana

🌍 Data

Weather · Germany · Agriculture · Space · Aviation · EU Companies

🔒 Security

Cybersecurity · Policy Gateway · Audit Trail

🤖 Agent Infra

Memory · Directory · Hub · Reputation

🔬 Research

Academic · LLM Benchmark · Legal

→ Full catalog (40+ servers)

License

MIT

Available Tools

6 tools
discoverA

Discover an MCP server card from a URL via .well-known.

Prüft ob unter der angegebenen URL eine Server Card unter .well-known/mcp-server-card.json verfügbar ist.

Args: url: Basis-URL des Servers (z.B. https://example.com)

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description indicates it's a fetch operation (checking a file) but does not disclose idempotency, auth needs, or whether it is read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise with front-loaded English, though mixed language slightly reduces clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with one parameter; output schema exists (not shown) so return value coverage is likely adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning to the url parameter by specifying it as the base URL with an example, compensating for the 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it discovers an MCP server card from a URL via .well-known, distinguishing it from siblings like search and validate_card.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies use when you have a server URL to check for a card, but no explicit when-not-to-use or alternative guidance given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_cardB

Generate a .well-known/mcp-server-card.json for an MCP server.

Erstellt eine maschinenlesbare Server Card mit allen Metadaten, die andere Agents zur automatischen Discovery brauchen.

Args: name: Name des MCP-Servers description: Kurze Beschreibung des Servers tools: Liste der Tools als [{name: "tool_name", description: "was es tut"}, ...] author: Autor oder Organisation repo_url: URL zum Repository version: Semantic Version (Standard: 0.1.0) categories: Tags/Kategorien für die Suche pricing: Preismodell (free/freemium/paid/open-source) auth_required: Ob Authentifizierung benötigt wird transport: Transport-Typ (stdio/http/both)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
toolsYes
authorNo
pricingNofree
versionNo0.1.0
repo_urlNo
transportNostdio
categoriesNo
descriptionYes
auth_requiredNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so description must disclose behavior. It states creation of a file but omits side effects like overwriting, permissions, or error conditions. No mention of output location or success/failure signals.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short paragraphs plus a bullet list of parameters. No wasted words, but could be more front-loaded with key purpose. The German sentence is redundant but not harmful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 10 parameters and no annotations, the description lacks behavioral context (side effects, prerequisites). Output schema exists but return values still require understanding. Missing guidelines on when to invoke.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description must explain parameters. It lists all 10 parameters with brief comments, but most are translations or minimal definitions. Adds format hint for 'tools' but overall meaning is shallow, not deep semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates a .well-known/mcp-server-card.json for MCP servers, with specific verb 'generate' and resource 'server card'. It distinguishes from siblings like discover or validate_card by focusing on creation of metadata file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like discover or validate_card. The description mentions agents use the card for discovery but does not compare or provide exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

registerB

Register a server card in the local index.

Fügt eine Server Card zum lokalen Index hinzu oder aktualisiert eine bestehende Card mit gleichem Namen.

Args: card_json: JSON-String der Server Card

ParametersJSON Schema
NameRequiredDescriptionDefault
card_jsonYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the burden. It discloses that the tool adds or updates a card if the name exists, which implies idempotency-like behavior. However, it omits details on return value, side effects, or required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and includes both English and German, but the dual language adds minimal overhead. The purpose is front-loaded. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-param tool with output schema, the description covers the basic operation. However, it lacks context on when to use this vs other tools and does not explain the output or error conditions. Adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description reads 'Args: card_json: JSON-String der Server Card', explaining the parameter format and purpose. This adds beyond the schema (which only shows type string), but lacks depth on valid JSON structure.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Register a server card in the local index' and explains it adds or updates with the same name. This distinguishes it from siblings like 'generate_card' (which likely creates a new card from scratch) and 'search' (which retrieves).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs siblings like 'discover', 'search', or 'validate_card'. Lacks context such as prerequisites (e.g., a server must exist) or when updating is preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

schemaA

Get the JSON schema for MCP server cards.

Gibt das vollständige Schema zurück, das beschreibt welche Felder eine Server Card haben kann und welche Pflicht sind.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It describes the tool as a read-only schema retrieval with no mention of side effects, auth needs, or rate limits. While functional, it misses opportunity to disclose benign traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded, delivering core information in English and German. The bilingual text adds minor redundancy but does not significantly detract from conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given low complexity (no params) and presence of an output schema, the description is fully adequate. It clearly states the tool's output and purpose without needing additional detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so schema coverage is 100%. The description adds meaning by explaining the schema's purpose (fields and requirements), exceeding the baseline of 4 for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the JSON schema for MCP server cards, specifying the verb 'get' and the resource. It distinguishes itself from sibling tools (e.g., discover, validate_card) by focusing on schema definition rather than card operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (before creating or validating cards) but lacks explicit guidance on when to use this tool versus alternatives like search or discover. No when-not or alternative references are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_cardA

Validate a server card JSON against the schema.

Prüft ob eine Server Card alle Pflichtfelder enthält und dem Schema entspricht. Gibt auch Warnungen für fehlende empfohlene Felder.

Args: card_json: JSON-String der Server Card

ParametersJSON Schema
NameRequiredDescriptionDefault
card_jsonYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It states that the tool validates against a schema, checks required fields, and yields warnings for missing recommended fields. This adequately discloses the read-only nature of validation, though it does not detail output structure (but output schema exists).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with an English lead sentence followed by German explanation. It is front-loaded and avoids unnecessary details. The Args section is minimal but effective. Slight redundancy due to bilingual text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter and the existence of an output schema, the description covers the core behavior well. It explains the validation logic and warnings. It could mention error handling or strictness, but overall is sufficiently complete for this simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, but the description explicitly defines the parameter 'card_json' as a JSON string of the server card. This fully compensates for the missing schema description and provides sufficient clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool validates a server card JSON against a schema, checking required fields and giving warnings for recommended fields. The verb 'validate' and resource 'server card JSON' are specific, and it distinguishes itself from sibling tools like 'generate_card' (creation) and 'search' (discovery).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lacks explicit guidance on when to use this tool versus alternatives. It only describes the functionality without stating prerequisites, exclusions, or when not to use it. However, the purpose is clear enough that an agent can infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.5/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: discover fetches a card from a URL, generate_card creates a card JSON, register adds to index, schema retrieves schema, search queries index, and validate_card validates a card. No overlap.

Naming Consistency3/5

Naming mixes styles: verb-only (discover, register, search), verb_noun (generate_card, validate_card), and noun (schema). While readable, it lacks a consistent pattern, such as all verb_noun.

Tool Count5/5

Six tools cover the core operations for server card management: discovery, generation, registration, validation, schema retrieval, and search. This is well-scoped and neither too few nor too many.

Completeness4/5

The tools cover the main lifecycle: create (generate_card + register), read (discover, search), and validate. Missing update or delete operations, but these are minor gaps for the server's purpose.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    AI-first MCP server discovery tool that enables agents to search, inspect, and install MCP servers from multiple registries.
    12
    AGPL 3.0
  • A
    license
    A
    quality
    D
    maintenance
    Enables MCP server discovery via DNS TXT records, allowing agents to find, browse, and install MCP servers using existing DNS infrastructure without centralized registries.
    7
    12
    2
    MIT

Latest Blog Posts

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/AiAgentKarl/agent-server-card-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server