Skip to main content
Glama
fernandogjrtcv

Darwin Standards MCP Server

Darwin Standards MCP Server

MCP server providing standards documentation and validation tools for the Darwin platform.

Overview

The Standards MCP Server is designed to:

  1. Expose standards as MCP resources - Agents can read platform standards via standard URIs

  2. Provide validation tools - Validate naming conventions, tool definitions, and agent cards

  3. Enable standards search - Find relevant standards documentation quickly

Note: This is an MCP Server, not a true Agent. It provides tools and resources but does not contain an LLM and does not make autonomous decisions.

Quick Start

# Build and run
make build
make run

# Or with docker directly
docker build -t standards-mcp-server .
docker run -p 8080:8080 \
  -v /path/to/standards:/app/standards:ro \
  -e MCP_TRANSPORT=http \
  standards-mcp-server

Option 2: Local Installation

# Create virtual environment and install
make install

# Run locally (stdio mode)
make run-local

# Run locally (HTTP mode)
make run-http

Option 3: Claude Code Integration

# Using Python module directly
claude mcp add --transport stdio \
  --env STANDARDS_PATH=/path/to/docs/standards \
  standards -- python -m standards_mcp_server.server

# Using container
claude mcp add --transport stdio standards -- \
  docker run --rm -i \
  -v /path/to/docs/standards:/app/standards:ro \
  -e MCP_TRANSPORT=stdio \
  fgsansharedacrdeveus.azurecr.io/standards-mcp-server:latest

MCP Resources

Standards Documentation

URI

Description

standards://agents/design

Agent design principles

standards://agents/communication

A2A protocol standards

standards://agents/tools

MCP tool integration

standards://agents/memory

Neo4j memory architecture

standards://agents/observability

OpenTelemetry setup

standards://agents/security

Security requirements

standards://mcp/server-design

MCP server architecture

standards://mcp/tool-design

Tool definition standards

standards://mcp/resource-design

Resource exposure standards

standards://mcp/security

MCP security patterns

standards://mcp/error-handling

Error handling standards

Templates and Implementations

URI

Description

templates://mcp/python

Python MCP server template

templates://mcp/dotnet

.NET MCP server template

implementations://mcp/standards

This server's implementation

implementations://agents/python/langchain

LangChain agent

MCP Tools

Validation Tools

  • validate_azure_resource_name - Validate Azure resource names against naming conventions

  • validate_mcp_tool_definition - Validate MCP tool definitions against standards

  • validate_agent_card - Validate A2A agent cards against protocol standards

Search Tools

  • search_standards - Full-text search across standards documents

  • list_standards_categories - List all available categories

  • get_standards_summary - Get document summaries for a category

Configuration

Variable

Description

Default

MCP_SERVER_NAME

Server name

standards-mcp-server

MCP_TRANSPORT

Transport type (stdio or http)

stdio

MCP_PORT

HTTP port

8080

MCP_HOST

HTTP host

0.0.0.0

MCP_LOG_LEVEL

Log level

INFO

STANDARDS_PATH

Path to standards docs

docs/standards

REFERENCE_IMPLEMENTATIONS_PATH

Path to implementations

reference-implementations

OTEL_ENABLED

Enable OpenTelemetry

true

OTEL_EXPORTER_OTLP_ENDPOINT

OTLP endpoint

null

Development

Running Tests

# Run all tests
make test

# With coverage
make test-cov

# Linting
make lint

# Type checking
make typecheck

Project Structure

darwin-standards-mcp/
├── .github/
│   ├── workflows/          # CI/CD pipelines
│   └── PULL_REQUEST_TEMPLATE.md
├── .k8s/
│   ├── base/              # Base Kubernetes manifests
│   └── overlays/          # Environment-specific overlays
│       ├── dev/
│       └── prod/
├── src/standards_mcp_server/
│   ├── __init__.py
│   ├── server.py          # Main MCP server
│   ├── config.py          # Configuration
│   ├── observability.py   # OpenTelemetry setup
│   ├── resources/         # MCP resources
│   └── tools/             # MCP tools
├── tests/
├── scripts/               # Deployment scripts
├── docs/                  # Documentation
├── Dockerfile
├── Makefile
└── pyproject.toml

Deployment

Deploy to AKS

# Using make
make deploy

# Using script
./scripts/deploy-to-aks.sh

Manual Deployment

# Get AKS credentials
az aks get-credentials --resource-group rg-fgsan-shared-dev-eus --name fgsan-shared-aks-dev-eus

# Apply manifests
kubectl apply -k .k8s/overlays/dev

# Verify
kubectl get pods -n darwin-mcp -l app=standards-mcp-server

See DEPLOYMENT.md for detailed deployment instructions.

CI/CD

The repository includes GitHub Actions workflows for:

  • lint-and-test.yml - Runs on PRs: linting, testing, type checking

  • build-and-push.yml - Runs on push to main: builds and pushes Docker image to ACR

  • deploy-to-aks.yml - Runs after build: deploys to AKS

  • release.yml - Runs on version tags: creates GitHub releases

License

MIT License - see LICENSE for details.

Available Tools

6 tools
get_standards_summaryB

Get a summary of all standards in a category.

Returns titles and descriptions of all documents in the specified category for quick reference.

Args: category: Category name (agents, mcp, infrastructure) ctx: MCP context

Returns: Dictionary with document summaries.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns a dictionary with document summaries, which is helpful, but doesn't mention important behavioral aspects like whether this is a read-only operation, if there are rate limits, authentication requirements, error conditions, or what happens with invalid categories. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.

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 appropriately sized and front-loaded with the core purpose in the first sentence. The additional sentences about returns and parameters are useful but could be slightly more streamlined. There's minimal waste, though the mention of 'ctx' (not in schema) adds minor confusion.

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 tool has an output schema (which handles return values), one parameter with low schema coverage, and no annotations, the description does a reasonably complete job. It explains the purpose, parameter semantics, and return format. However, it lacks behavioral context (like safety or limitations) and usage guidelines relative to siblings, which are important for a tool in this context.

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 schema has 0% description coverage, so the description must compensate. It provides the parameter 'category' with example values (agents, mcp, infrastructure), which adds meaningful context beyond the bare schema. However, it doesn't explain what these categories represent or if there are other valid values, preventing a perfect score. The 'ctx' parameter mentioned in the description isn't in the schema, which is confusing but doesn't severely impact the score since the schema defines the actual parameters.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get a summary of all standards in a category' and specifies it returns 'titles and descriptions of all documents in the specified category for quick reference.' This is a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'list_standards_categories' or 'search_standards', which prevents a score of 5.

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?

The description provides no guidance on when to use this tool versus alternatives. It mentions the category parameter values (agents, mcp, infrastructure), but doesn't explain when to choose this tool over 'list_standards_categories' (which might list categories) or 'search_standards' (which might search within standards). There's no mention of prerequisites, exclusions, or specific use cases.

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

list_standards_categoriesA

List all available standards categories.

Returns a list of all top-level categories in the standards documentation with descriptions and document counts.

Args: ctx: MCP context

Returns: Dictionary with category information.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool returns a list with descriptions and document counts, which adds behavioral context beyond a simple list. However, it lacks details on pagination, rate limits, authentication needs, or error handling, which are important for a read operation with potential data volume.

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 appropriately sized and front-loaded, starting with the core purpose. The additional sentences about returns and args/returns are useful but could be slightly more integrated. There's minimal waste, though the 'Args: ctx' and 'Returns:' sections are somewhat redundant given the structured fields.

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 tool's simplicity (0 parameters, read-only operation), the description is reasonably complete. It explains what the tool does and what it returns, and with an output schema present, it doesn't need to detail return values. However, for a tool with siblings, more guidance on differentiation would enhance completeness.

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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description correctly omits parameter details, focusing on the tool's purpose and output. This aligns well with the schema, earning a high score as it doesn't introduce unnecessary complexity.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('standards categories'), specifying it returns 'all top-level categories in the standards documentation with descriptions and document counts'. It distinguishes from siblings like 'search_standards' by focusing on listing categories rather than searching content. However, it doesn't explicitly contrast with 'get_standards_summary', which might be a similar listing operation.

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 for retrieving top-level categories, but provides no explicit guidance on when to use this tool versus alternatives like 'search_standards' or 'get_standards_summary'. It mentions 'all top-level categories' which suggests a broad listing, but doesn't state exclusions or prerequisites, leaving usage context somewhat vague.

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

search_standardsB

Search standards documents for relevant content.

Performs a full-text search across all standards documents and returns relevant excerpts with context.

Args: query: Search query (keywords or phrases) category: Optional category filter (agents, mcp, infrastructure) max_results: Maximum number of results to return (default: 10) ctx: MCP context

Returns: Dictionary with search results and metadata.

Example: >>> results = await search_standards("authentication") >>> for r in results["results"]: ... print(f"{r['title']}: {r['excerpt']}")

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
categoryNo
max_resultsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool 'returns relevant excerpts with context' and includes an example, but fails to describe critical behaviors such as search algorithm details, pagination, rate limits, authentication requirements, or error handling. For a search tool with zero annotation coverage, this leaves significant gaps in understanding how it operates.

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 well-structured with a purpose statement, parameter explanations, return value note, and example. It's appropriately sized and front-loaded with the core functionality. The example is helpful but could be slightly more concise; overall, most sentences earn their place without significant waste.

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?

Given 3 parameters with 0% schema coverage and no annotations, the description does a decent job explaining parameters and purpose. However, it lacks details on behavioral aspects like search scope, result formatting, or error conditions. The presence of an output schema helps, but the description doesn't fully compensate for the missing behavioral context, making it adequate but with clear gaps.

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?

Schema description coverage is 0%, so the description must compensate. It provides clear semantics for all three parameters: 'query' as search keywords/phrases, 'category' as an optional filter with specific values (agents, mcp, infrastructure), and 'max_results' with its default. This adds substantial meaning beyond the bare schema, though it doesn't detail format constraints or advanced query syntax.

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

Purpose4/5

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

The description clearly states the tool performs a 'full-text search across all standards documents and returns relevant excerpts with context', which is a specific verb+resource combination. It distinguishes itself from siblings like 'get_standards_summary' or 'list_standards_categories' by focusing on search functionality rather than listing or summarizing. However, it doesn't explicitly contrast with 'validate_*' tools, which serve different purposes.

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 for searching standards documents, but provides no explicit guidance on when to use this tool versus alternatives like 'get_standards_summary' or 'list_standards_categories'. It mentions optional parameters like 'category' filtering, which hints at context, but lacks clear when/when-not statements or named alternatives for different search scenarios.

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

validate_agent_cardC

Validate an Agent Card against A2A protocol standards.

Checks if the agent card follows the Darwin platform A2A standards and contains all required fields.

Args: agent_card: The agent card JSON to validate ctx: MCP context

Returns: ValidationResult with any issues found.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_cardYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool validates against standards and returns a ValidationResult, but lacks details on permissions required, rate limits, error handling, or whether it's a read-only operation. For a validation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior and constraints.

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 appropriately sized and front-loaded: the first sentence states the core purpose, followed by additional details and parameter/return explanations. It avoids unnecessary fluff, though the 'Args:' and 'Returns:' sections could be integrated more seamlessly. Overall, it's efficient with minimal waste.

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?

Given the tool's moderate complexity (validation against standards), no annotations, and an output schema (ValidationResult), the description is partially complete. It covers the purpose and basic parameters but lacks behavioral context, usage guidelines, and detailed parameter semantics. The presence of an output schema reduces the need to explain return values, but other gaps remain, making it adequate but with clear room for improvement.

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?

The description adds minimal parameter semantics: it explains that 'agent_card' is 'The agent card JSON to validate' and mentions 'ctx: MCP context'. With 0% schema description coverage and 1 parameter, this provides some clarification beyond the bare schema, but doesn't detail JSON structure requirements, validation rules, or context usage. The baseline is 3 due to low parameter count, but the description doesn't fully compensate for the lack of schema documentation.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Validate an Agent Card against A2A protocol standards' and 'Checks if the agent card follows the Darwin platform A2A standards and contains all required fields.' This specifies the verb (validate/check), resource (agent card), and standard (A2A protocol/Darwin platform). However, it doesn't explicitly differentiate from sibling tools like 'validate_mcp_tool_definition' or 'validate_azure_resource_name' beyond mentioning the specific resource type.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'validate_mcp_tool_definition' or 'validate_azure_resource_name', nor does it specify prerequisites, exclusions, or appropriate contexts for validation. The agent must infer usage based solely on the tool name and description without explicit direction.

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

validate_azure_resource_nameA

Validate an Azure resource name against naming conventions.

Checks if the given resource name follows the Darwin platform naming conventions for Azure resources.

Args: resource_name: The resource name to validate resource_type: Type of Azure resource (e.g., "resource_group", "storage_account") ctx: MCP context for logging

Returns: ValidationResult with any issues found.

Example: >>> result = await validate_azure_resource_name( ... "rg-myapp-eus-dev", ... "resource_group" ... ) >>> print(result["valid"]) True

ParametersJSON Schema
NameRequiredDescriptionDefault
resource_nameYes
resource_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses that the tool performs validation and returns a ValidationResult with issues found, which is useful behavioral context. However, it doesn't mention error handling, performance characteristics, rate limits, or authentication requirements that might be relevant for a validation tool.

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 well-structured with purpose statement, parameter explanations, return value description, and a clear example. Every sentence earns its place, though the example could be slightly more concise. The information is front-loaded with the core purpose stated first.

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 tool has an output schema (which handles return values), 2 parameters with 0% schema coverage, and no annotations, the description does a good job explaining what the tool does, what parameters mean, and what to expect. The example provides concrete usage. It could be more complete by explaining the ValidationResult structure or providing more context about the Darwin platform.

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?

Schema description coverage is 0%, so the description must compensate. It provides clear explanations for both parameters: 'resource_name' as 'The resource name to validate' and 'resource_type' as 'Type of Azure resource' with examples. This adds meaningful context beyond the bare schema, though it could provide more guidance on valid resource_type values.

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's purpose with specific verb ('validate') and resource ('Azure resource name'), and distinguishes it from siblings by focusing on naming conventions for Azure resources. It explicitly mentions checking against 'Darwin platform naming conventions for Azure resources', which provides domain-specific context.

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 when validating Azure resource names against naming conventions, but doesn't explicitly state when to use this tool versus alternatives or when not to use it. No comparison is made with sibling tools like 'validate_agent_card' or 'validate_mcp_tool_definition', leaving the agent to infer appropriate contexts.

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

validate_mcp_tool_definitionC

Validate an MCP tool definition against standards.

Checks if the tool follows Darwin platform MCP tool design standards.

Args: tool_name: Name of the tool tool_description: Tool docstring/description parameters: Tool parameters schema (JSON Schema format) ctx: MCP context

Returns: ValidationResult with any issues found.

ParametersJSON Schema
NameRequiredDescriptionDefault
tool_nameYes
tool_descriptionYes
parametersYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool performs validation and returns a 'ValidationResult with any issues found,' which implies a read-only, non-destructive operation. However, it lacks details on permissions required, error handling, rate limits, or what constitutes a valid 'MCP context' in the parameters. For a validation tool with zero annotation coverage, this leaves significant behavioral gaps.

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 well-structured with a purpose statement, bullet-point-like 'Args' and 'Returns' sections, and uses clear, efficient language. It avoids redundancy and is appropriately sized for a validation tool. The front-loaded purpose statement helps, though the formatting could be more polished (e.g., using proper markdown).

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?

Given the tool's complexity (validation with 3 parameters, nested objects in schema, and an output schema), the description is moderately complete. It explains parameters and the return value, and an output schema exists, so it needn't detail return values further. However, with no annotations and 0% schema coverage, it lacks behavioral context like error cases or validation standards specifics, making it adequate but with clear gaps for a tool of this nature.

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 the schema provides no parameter descriptions. The description includes an 'Args' section listing parameters: 'tool_name', 'tool_description', 'parameters', and 'ctx', and a 'Returns' section explaining the output. This adds meaningful semantics beyond the bare schema, covering all 3 required parameters and the output. However, it doesn't detail parameter formats (e.g., JSON Schema specifics for 'parameters') or context requirements, leaving some ambiguity.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Validate an MCP tool definition against standards' and specifies 'Checks if the tool follows Darwin platform MCP tool design standards.' This provides a specific verb ('validate') and resource ('MCP tool definition'), though it doesn't explicitly differentiate from sibling tools like 'validate_agent_card' or 'validate_azure_resource_name' which validate different types of resources.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_standards_summary', 'list_standards_categories', or 'search_standards' that might be related to standards, nor does it specify prerequisites or contexts for validation. Usage is implied only by the tool's name and purpose statement.

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
Disambiguation4/5

Most tools have distinct purposes: get_standards_summary, list_standards_categories, and search_standards all operate on standards documents but with clear differentiation (summary vs. list categories vs. search). The three validation tools target different objects (agent cards, Azure resource names, MCP tool definitions), though all being validation functions creates some conceptual overlap. Overall, descriptions help clarify boundaries, but the validation trio could potentially cause minor confusion.

Naming Consistency5/5

All tools follow a consistent snake_case naming pattern with clear verb_noun structure. The verbs are appropriate and consistent: 'get', 'list', 'search', and 'validate' are used logically throughout. There are no deviations in style or convention across the six tools.

Tool Count5/5

Six tools is well-scoped for a standards server, covering core operations: browsing standards (summary, categories, search) and validation (agent cards, Azure resources, MCP tools). Each tool earns its place without redundancy, and the count aligns with the server's purpose of providing standards access and validation.

Completeness4/5

The tool surface covers the main workflows for standards access and validation effectively. Minor gaps exist: there's no tool to retrieve full standards documents (only summaries or search results), and validation tools are limited to three specific types without a general validation function. However, agents can work around these gaps using the available tools, and the core domain is reasonably covered.

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

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/fernandogjrtcv/darwin-standards-mcp'

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