Skip to main content
Glama

soul-mcp-server

License: MIT

MCP server for SOUL.md — validate and generate soul files directly from Claude Desktop or any MCP-compatible client.

Built for Agenturo — the reference SOUL.md implementation. Deploy your soul file as a live agent on your own subdomain.


30-second setup

Add this to your claude_desktop_config.json (usually at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "soul-md-cli": {
      "command": "npx",
      "args": ["soul-mcp-server"]
    }
  }
}

Restart Claude Desktop. The three soul tools will appear in your tool list.


Related MCP server: 50 First Tapes MCP Server

Tools

validate_soul_file

Validates a .soul.md file against the SOUL.md schema.

Parameters:

  • path (string, required) — path to the soul file

Returns: JSON with pass boolean, name, version, and errors array.

Example prompt:

"Validate my soul file at ~/agents/marcus.soul.md"


generate_soul_template

Generates a starter .soul.md for a given agent name and keywords.

Parameters:

  • name (string, required) — the agent's name

  • keywords (string[], optional) — domain keywords to seed the template

Returns: A ready-to-edit soul file as a string.

Example prompt:

"Generate a soul template for a climate scientist who specializes in carbon capture"


score_soul_file

Returns a completeness score (0–100) based on how many optional fields are filled.

Parameters:

  • path (string, required) — path to the soul file

Returns: JSON with score, filled, missing, and total.

Example prompt:

"Score my agent at ~/agents/startup-advisor.soul.md and tell me what's missing"


Spec & examples

Full specification: soul-spec

Curated community soul files: awesome-soul-files

CLI validator (no Claude required): soul-md-cli


MIT License. Created by Anton Agafonov.

Available Tools

3 tools
generate_soul_templateB

Generate a starter SOUL.md file for a given agent name and keywords.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe agent's name.
keywordsNoKeywords describing the agent's domain or expertise.

TDQS

B3.1/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 generates a file but doesn't describe what 'starter' implies (e.g., template structure, default content), whether it overwrites existing files, requires specific permissions, or handles errors. This leaves significant gaps for a file-creation tool.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core action ('Generate a starter SOUL.md file') and specifies the inputs. There is no wasted wording, making it highly concise and well-structured.

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 (file generation with two parameters), no annotations, and no output schema, the description is minimally adequate. It covers the basic purpose but lacks details on behavioral traits, usage context, and output format, which are important for effective tool invocation.

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 input schema has 100% description coverage, clearly documenting both parameters. The description adds marginal value by contextualizing 'name' and 'keywords' as inputs for agent customization, but doesn't provide additional syntax, format details, or examples beyond what the schema already states.

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 with a specific verb ('Generate') and resource ('starter SOUL.md file'), and identifies the target ('for a given agent name and keywords'). However, it doesn't explicitly differentiate from sibling tools like 'score_soul_file' or 'validate_soul_file', which appear to operate on existing files rather than creating new ones.

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 its siblings. It doesn't mention alternatives, prerequisites, or exclusions, leaving the agent to infer usage from tool names alone.

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

score_soul_fileB

Return a completeness score (0-100) for a SOUL.md file based on how many optional fields are filled.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the .soul.md file to score.

TDQS

B3.1/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 score but doesn't describe what happens if the file is missing, invalid, or inaccessible; whether it has side effects; or what the scoring algorithm entails beyond 'optional fields'. 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.

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core functionality and avoids redundancy, making it easy for an agent to parse quickly.

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 (scoring based on optional fields), lack of annotations, and no output schema, the description is minimally adequate. It explains what the tool does but doesn't cover behavioral aspects like error handling or scoring details. For a tool with no structured output or annotations, more context would be beneficial to ensure reliable use.

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 input schema has 100% description coverage, with the single parameter 'path' documented as 'Path to the .soul.md file to score.' The description doesn't add any meaning beyond this, such as file format expectations or path resolution rules. With high schema coverage, the baseline score of 3 is appropriate, as the schema handles the parameter documentation adequately.

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: 'Return a completeness score (0-100) for a SOUL.md file based on how many optional fields are filled.' It specifies the verb ('return'), resource ('SOUL.md file'), and scoring mechanism ('completeness score based on optional fields'). However, it doesn't explicitly distinguish this from sibling tools like 'validate_soul_file', which might perform similar validation functions.

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 'generate_soul_template' or 'validate_soul_file', nor does it specify prerequisites or contexts where scoring is appropriate versus other operations. The agent must infer usage from the purpose alone.

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

validate_soul_fileB

Validate a SOUL.md file against the schema. Returns pass/fail and field-level errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the .soul.md file to validate.

TDQS

B3.1/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 full burden. It mentions the return format ('pass/fail and field-level errors'), which adds some behavioral context. However, it doesn't disclose other traits like error handling, performance, or side effects (e.g., whether it modifies the file). For a validation tool with zero annotation coverage, this is insufficient.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the purpose and includes return information. Every word earns its place with no redundancy or waste, making it highly concise and well-structured.

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 low complexity (1 parameter, no output schema, no annotations), the description is adequate but has gaps. It covers purpose and returns, but lacks usage guidelines and full behavioral transparency. For a validation tool, this is minimally viable but could be more 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?

The input schema has 100% description coverage, with the 'path' parameter documented as 'Path to the .soul.md file to validate.' The description doesn't add any meaning beyond this, such as file format details or path constraints. Baseline 3 is appropriate since the schema does the heavy lifting.

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 a SOUL.md file against the schema.' It specifies the verb (validate), resource (SOUL.md file), and action (against schema). However, it doesn't explicitly differentiate from sibling tools like 'score_soul_file' or 'generate_soul_template' beyond the validation focus.

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 or contexts where validation is preferred over scoring or template generation. Usage is implied by the purpose but lacks explicit when/when-not instructions.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv1.0.0
    • First observedgenerate_soul_template
    • First observedscore_soul_file
    • First observedvalidate_soul_file

TDQS

B3.4/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: generate creates a new file, score evaluates completeness, and validates checks schema compliance. There is no overlap in functionality, and an agent can easily distinguish between them based on their specific actions.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case (generate_soul_template, score_soul_file, validate_soul_file). The verbs (generate, score, validate) are distinct and appropriately descriptive, maintaining a predictable naming convention throughout.

Tool Count3/5

With only 3 tools, the set feels thin for a server focused on SOUL.md file management. While it covers basic operations (create, evaluate, validate), it lacks tools for updating, deleting, or listing files, which could limit agent workflows in this domain.

Completeness3/5

The tools cover creation, scoring, and validation, but there are notable gaps in the lifecycle. Missing operations like update_soul_file, delete_soul_file, or list_soul_files prevent full CRUD coverage, which could lead to dead ends for agents trying to manage multiple files.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers