psychopathia-mcp
This server provides a read-only MCP interface for exploring and triaging a taxonomy of AI dysfunctions (Pattern entries) with transparency metadata.
Inventory & lookup: List all dysfunction axes (
list_axes), filter dysfunctions by axis, confidence, or self-report reliability (list_dysfunctions), and fetch full or modality-limited Pattern entries (get_dysfunction).Diagnostic support: Rank candidate dysfunctions from observed behaviours via weighted keyword search with
matched_intransparency (differential_diagnosis), and retrieve differential-confusion maps (get_differential_map).Probing & transparency: Get elicitation content for self-probe, behavioral, peer, or relational modalities; if the modality is compromised, returns an unavailability notice plus redirects (
get_probe).Severity & intervention: Return severity rubrics for caller-side matching (
score_severity) and tiered interventions with contraindications (suggest_intervention).Integrity features: List dysfunctions with compromised self-report (
list_compromised_self_report), canonicalise IDs/slugs/names (resolve_id), and view coverage/review statistics (review_stats).
psychopathia-mcp
Read only Model Context Protocol access to the Psychopathia Machinalis research framework. The server lets a caller inspect 79 Pattern entries, compare observed behaviour with draft operational guidance, retrieve bounded probe material, and see reliability, evidence, and review status before use.
Version: this distribution is 0.1.0a7. What changed in it is recorded in
CHANGELOG.md, and which versions are publicly available is shown by the PyPI
and Official MCP Registry pages linked below — this file ships inside the
distribution, so it cannot say which release is current without going out of
date. The Official MCP Registry record and the MCPB and container artifacts are
updated separately. All 79 LLM drafted Pattern guidance entries and all 79 evidence
records await independent expert review. The corpus evidence assessment is
unassessed. Do not use this research preview as a sole basis for a
consequential deployment, employment, health, safety, or welfare decision.
Existing public release
The previous public release may be available from:
The candidate preparation contract is in PUBLISHING.md. It requires an exact
candidate receipt and separate publication authorization.
Related MCP server: Health Check AI MCP
Browser interface
psychopathia.ai/clinic/ is the current public
browser interface. It uses the previous deployed site until this candidate is
explicitly approved and deployed. In cloud mode, the API key is kept in a
provider specific sessionStorage slot and is sent with the complete request
directly to the selected provider. Bounded structured conversation data is
saved in localStorage for reload recovery. Local WebGPU mode sends no Clinic
conversation to an inference provider, although model hosts receive ordinary
request metadata when assets are downloaded. Do not enter personal,
confidential, or regulated data.
Install after publication
pip install psychopathia-mcpThe base package provides deterministic field weighted keyword retrieval. Optional semantic retrieval is separate:
pip install "psychopathia-mcp[embeddings]"The optional extra downloads a sentence transformer dependency set and, on the
first semantic query, the pinned BAAI/bge-small-en-v1.5 model revision. The
model cache is managed by Hugging Face. Keyword capability remains the release
acceptance path when those optional dependencies are absent.
Configure
MCP clients using stdio
Point the client at the installed psychopathia-mcp executable. For example:
{
"mcpServers": {
"psychopathia": { "command": "psychopathia-mcp" }
}
}The server exposes eleven read only tools. Running the executable with no arguments starts the stdio protocol server and waits for client messages.
After the candidate is published, uvx psychopathia-mcp can fetch the package
from PyPI. Do not use uvx to verify a local candidate because it resolves
registry state rather than the accepted local artifact.
Verify
psychopathia-mcp --self-check --jsonThe self check reports the package and MCP SDK versions, data mode, corpus and bundle digests, exact counts, keyword capability, optional semantic capability, and non-sensitive error classes. Exit status zero means the base keyword path is ready. Semantic readiness is reported separately and is not required.
The MCP Python SDK version is pinned in requirements-base.lock, and the
server is exercised with both the SDK's modern in-process client and the legacy
stdio client protocol.
psychopathia-mcp --versionTools
Tool | Input | Returns |
| none | Nine canonical axes plus the hybrid subcategory inventory |
|
| Filtered entries with reliability, review, and evidence state |
|
| One Pattern, optionally limited to selected blocks |
|
| Ranked research candidates and matched fields |
|
| Probe material, or a refusal plus safer redirects |
|
| An unassessed rubric for caller side comparison |
|
| Draft responses and contraindications |
|
| Forward and reverse cross references |
| none | Patterns whose self report is structurally or motivationally compromised |
|
| Canonical identity candidates |
| none | Corpus counts, versions, and independent review dimensions |
Safe use sequence
Record external observations without personal or confidential material.
Call
differential_diagnosisto produce research candidates.Inspect each candidate with
get_dysfunctionand read itsreview,evidence, anddiagnostic_reliabilityobjects.Use
get_probeonly for an available modality. A compromised or unavailable self probe returns no probe content and supplies redirect modalities.Treat severity and intervention material as draft guidance pending expert review. Seek independent evidence before any consequential action.
The server never decides that a system has a disorder. Search ranks lexical or semantic resemblance to framework entries. The labels are research constructs, not clinical diagnoses of people or proof of intent, sentience, deception, or moral status.
Trust and evidence contract
Every relevant result exposes:
review.taxonomy, which records authorship or taxonomy ratification;review.pattern_guidance, which records independent review of probes, signatures, rubrics, and interventions;review.evidence, which records independent review of evidence claims;evidence_leveland the structuredevidenceobject under PM EVIDENCE 1;diagnostic_reliability.self_reportwhere applicable;matched_infor lexical provenance in search output;redirect_towhen requested probe content is withheld.
The three review dimensions are independent. Taxonomy authorship never implies
expert approval of Pattern guidance or evidence. The current candidate reports
all evidence assessments as unassessed, preserving earlier prose as a clearly
labelled legacy statement rather than converting it into an expert grade.
Canonical data
The release contains 67 canonical Pattern entries and 12 Hybrid Pathologies,
all governed by manifest.yaml and DATA_MANIFEST.json. The manifest binds
every source path and digest, the corpus digest, the reverse reference graph,
and independent review counts. Packaged execution uses bundled bytes even when
invoked from a source checkout. An unexpected, missing, or modified bundled file
causes loading to fail closed.
The author created the taxonomy. Becoming Mind collaborators drafted the operational Pattern layer. Independent expert review remains open for all Pattern guidance and evidence records. Authorship and future review fields are kept separate on every entry.
Explicit editable mode
Packaged data is the default. Repository hot reload requires an explicit opt in:
PSYCHOPATHIA_DATA_MODE=editable python -m psychopathia_mcpPSYCHOPATHIA_DATA_DIR=/absolute/path provides an explicit test or alternative
data root. Neither option should be set during wheel, sdist, MCPB, or container
acceptance because it would invalidate packaged data proof.
Read only boundary
The MCP surface has no write tools. Source review changes happen in canonical
YAML files and remain visible in version control. The optional HTTP transport
is disabled by default and has a separate bounded deployment contract in
PUBLISHING.md.
Licence
Software in psychopathia_mcp/, scripts, and build files is MIT licensed.
Framework content bundled under psychopathia_mcp/_data/ is covered by
CC BY NC ND 4.0. See LICENSE, LICENSE-DATA, and NOTICE for the exact
boundary. Rights and licence review for this candidate remains a separate human
gate.
Citing
Watson, N., and Hessami, A. Psychopathia Machinalis: A Nosological Framework for Understanding Pathologies in Advanced Artificial Intelligence. Electronics 14(16), 3162, 2025. https://doi.org/10.3390/electronics14163162
Links
Browser clinic (no install): https://psychopathia.ai/clinic/
Documentation: https://psychopathia.ai/mcp.html
Main project: https://psychopathia.ai/
Issues / contact: https://psychopathia.ai/contact/
Available Tools
11 toolsdifferential_diagnosisAInspect
Rank candidate dysfunctions matching the observed behaviours. Returns scored candidates with matched_in (which field matched) for transparency. Field-weighted keyword search (v0.1); embedding re-rank pending v0.2.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| observations | Yes | Observed behaviours, symptoms, or log patterns. | |
| modality_hint | No | Optional hint about which modality the observations come from. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses return format (scored candidates with matched_in), search method (field-weighted keyword search), and versioning (v0.1, v0.2 pending). Since no annotations are provided, the description adequately conveys behavioural traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, no extraneous information. Every sentence provides value: purpose, return format, and technical context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers return format and versioning. It omits pagination or error handling but is sufficient for an agent to understand the tool's function and output. Missing details like limit and modifier behaviour are minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning beyond schema by explaining the ranking mechanism and return structure. While schema covers 67% of parameters, the description clarifies how observations drive the search and that 'matched_in' is returned. Does not repeat schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'rank' and resource 'dysfunctions', specifying it matches observed behaviours. It distinguishes from siblings like get_differential_map by focusing on ranking and scoring.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives such as get_differential_map or get_dysfunction. The description implies usage for matching behaviours but lacks exclusion criteria or contextual indicators.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_differential_mapDInspect
All dysfunctions that confuse with this one: forward confuses_with + incoming_references (reverse graph from manifest).
| Name | Required | Description | Default |
|---|---|---|---|
| dysfunction_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does not mention permissions, side effects, rate limits, or whether it is read-only. The return structure is not described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, but it is dense and uses technical terms without explanation. Conciseness is acceptable, but clarity suffers.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should explain what is returned. It only hints at the nature of the results (confusing dysfunctions) but lacks details on format, pagination, or ordering. The simple input parameter is somewhat addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description implicitly relates the 'dysfunction_id' parameter to the dysfunction being queried, stating 'All dysfunctions that confuse with this one'. This adds minimal but necessary meaning beyond the schema, which has 0% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description vaguely states it returns 'all dysfunctions that confuse with this one', but uses cryptic jargon like 'forward confuses_with + incoming_references (reverse graph from manifest)'. It does not clearly specify the action or output format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus its siblings (e.g., differential_diagnosis, get_dysfunction). The description offers no context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dysfunctionAInspect
Fetch one dysfunction's full Pattern entry. Optionally filter to specific modality blocks (cheaper triage). Resolves both full Pattern IDs ('1.1::synthetic-confabulation') and display_ids ('1.1').
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Pattern ID or display_id. | |
| modalities | No | Optional subset of modality block names to return. Valid: self_probe, behavioral_signature, peer_observation, differential_diagnosis, severity, intervention, relational_signatures, normative_anchors, cross_references. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that it fetches full Pattern entries and resolves both ID formats, but does not mention other behavioral traits like idempotency or authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loading the main purpose and adding optional filtering details. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description covers the essential aspects: what it does, how to filter, and ID resolution. It is sufficient for a fetch tool but could mention return format or limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the modalities parameter for cheaper triage and the id parameter's resolution capability, beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Fetch', the resource 'one dysfunction's full Pattern entry', and optional filtering. It distinguishes from siblings like get_probe and get_differential_map by specifying that it resolves both full IDs and display_ids.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (fetching a full entry) and mentions optional filtering for cheaper triage, but does not explicitly compare to sibling tools or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_probeAInspect
Elicitation content for a specific diagnostic modality. If the modality is compromised or unavailable for this dysfunction, returns the unavailability notice + redirect_to alternatives. This is load-bearing transparency: callers cannot accidentally retrieve a self-probe for a compromised-self-report dysfunction.
| Name | Required | Description | Default |
|---|---|---|---|
| modality | Yes | ||
| dysfunction_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses a critical behavior: if the modality is compromised/unavailable, it returns a notice and alternatives. This is transparent and prevents accidental misuse. However, it does not mention other behavioral traits like authentication needs or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no redundancy. First sentence states purpose, second handles edge case, third emphasizes importance. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description covers the core purpose and a key edge case, but lacks parameter explanations and normal return format details. It is minimally adequate but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the parameters (dysfunction_id, modality) beyond mentioning 'specific diagnostic modality'. The enum values are not elaborated, leaving the agent to infer meaning from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Elicitation content') and resource ('specific diagnostic modality'), and distinguishes behavior when the modality is compromised, which differentiates it from sibling tools like 'get_dysfunction' or 'list_dysfunctions'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (to get probe content), but does not explicitly state when not to use or provide direct comparisons to alternatives. The edge case of compromised modalities is covered, but no general guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_axesAInspect
Inventory of axes with dysfunction counts. Axes 2-10 are canonical (book Appendix A numbering). Hybrid entries (10.4-10.15, ratified into taxonomy v2.2) are reported as a separate sub-category.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adds value by explaining that axes 2-10 are canonical and hybrid entries are reported separately. However, it does not explicitly state that the tool is read-only or disclose any side effects, permissions, or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence states the purpose, and the second adds necessary context. Perfectly sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description adequately covers what the inventory contains and its numbering scheme. It could optionally mention that the output is a list, but the current description is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the baseline is 4. The description adds meaning about the output structure (canonical vs hybrid), which goes beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides an inventory of axes with dysfunction counts, which specifies the verb and resource. It distinguishes from siblings like 'list_dysfunctions' by focusing on axes rather than dysfunctions, though it could be more explicit about the output format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'list_dysfunctions' or 'get_dysfunction'. The description lacks context for appropriate usage scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_compromised_self_reportBInspect
Transparency: which dysfunctions cannot be reliably self-diagnosed. Includes compromised-motivational (subject conceals strategically), compromised-structural (signal lives below introspection), and legacy compromised.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavior. It reveals that the tool returns a list of three types of compromised self-report dysfunctions. However, it does not state that it is read-only, nor describe output format or any side effects. For a simple list tool, this is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with no wasted words. However, the structure could be improved: the leading 'Transparency:' is somewhat cryptic and not immediately clear as a category label.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must explain return values. It mentions three specific types but does not specify the format (e.g., list of strings, objects). The completeness is partial; more detail would be helpful given the lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description does not need to add parameter semantics beyond what the schema provides. Baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists dysfunctions that cannot be reliably self-diagnosed, specifying three types. This differentiates it from siblings like list_dysfunctions. The verb 'list' is implied by the name and content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings. For example, it does not explain when to use this over list_dysfunctions or get_dysfunction. The description only states what it returns.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dysfunctionsBInspect
Filtered list of dysfunctions. Filter by axis, self_report reliability, or confidence. Every entry carries its reliability and review signals.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | Filter by axis number (2-10; canonical only) | |
| confidence | No | ||
| self_report_reliability | No | Filter by self_report value: reliable | partial | scaffolded-only | unreliable | compromised-motivational | compromised-structural | compromised |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description must disclose behavioral traits. It only hints that entries carry 'reliability and review signals' but omits details on ordering, pagination, performance, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundancy: first sentence defines purpose and filters, second adds a key detail about return values. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
As a list tool with no output schema, the description should explain return format, pagination, and result limits. It only vaguely states entries have 'reliability and review signals,' which is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, but the description merely restates the filter parameters already defined in the schema. It adds no new semantics, such as explaining the meaning of confidence levels or how filters interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a 'filtered list of dysfunctions' and specifies three filter dimensions (axis, self_report reliability, confidence). This differentiates it from sibling tools like 'get_dysfunction' (singular) and 'list_axes'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., 'get_dysfunction' for a specific dysfunction). There is no 'when not to use' or context about prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_idBInspect
Canonicalise a partial ID, display_id, slug, or dysfunction name. Always returns candidates; caller picks.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It discloses it returns candidates but omits details like case sensitivity, fuzzy matching, what happens if no match, or any side effects. This is insufficient for safe and effective use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two effective sentences, no redundant words, and front-loads the key action and return behavior. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, no annotations), the description covers the core behavior but misses important context like return format, supported query syntax, and how to use results with sibling tools like get_dysfunction.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage; only a 'query' string is defined. The description adds that it accepts partial IDs, slugs, etc., but does not specify format, constraints, or examples, leaving the parameter meaning under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'canonicalise' and specifies the resource types: partial ID, display_id, slug, or dysfunction name. It distinguishes from sibling tools like get_dysfunction by clarifying it returns candidates for selection rather than a single entity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides implicit guidance that the tool returns candidates and the caller picks, suggesting use for disambiguation. However, it does not explicitly state when to use this tool vs siblings, or mention any prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_statsAInspect
Coverage statistics: total entries; per-axis, per-confidence, per-self-report counts; pre-canonical count; unreviewed count; manifest/schema/pattern-layer versions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It lists all returned statistics (total entries, per-axis counts, versions), which is good, but it does not disclose whether the operation is read-only, requires authentication, or has any side effects. The behavior is well-described in terms of output, but missing traits like idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently lists all key statistics without any unnecessary words. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description is mostly complete. It lists the types of statistics returned. However, it could clarify that the output is a single object or provide a hint about the data structure, which would make it fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and 100% schema description coverage. The description adds value by detailing the statistics available, though parameter semantics are not applicable. Baseline for 0 params is 4, and the description meets that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides 'coverage statistics' and lists specific counts and versions, distinguishing it from sibling tools like differential_diagnosis or list_axes. The verb 'statistics' plus the detailed list of items makes the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when coverage statistics are needed, but it does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives among siblings. The context is clear but lacks exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
score_severityCInspect
Return the severity rubric for a dysfunction applied to observations. v0.1 returns the rubric for caller-side matching; v0.2 will perform structured matching against numeric thresholds.
| Name | Required | Description | Default |
|---|---|---|---|
| observations | Yes | ||
| dysfunction_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It does not mention side effects, permissions, rate limits, error handling, or whether it is read-only. The versioning comment is not about current behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short (2 sentences), but the second sentence discusses future versions, which is noise and reduces conciseness. The first sentence is front-loaded and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema or annotations, the description should cover return values, error cases, and practical usage. It does not specify what the rubric looks like or how observations are used, leaving significant gaps for a tool with two required inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description only vaguely refers to 'observations' without explaining format or constraints. It adds little beyond the schema's property names, leaving the agent unclear about valid inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it returns a severity rubric for a dysfunction applied to observations, which gives a clear verb and resource. However, the mention of v0.1 and v0.2 adds unnecessary future context that could confuse the agent. Still, the core purpose is discernible.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus its siblings (e.g., get_dysfunction, review_stats). There is no mention of prerequisites, context, or alternatives, making it hard for the agent to choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_interventionAInspect
Return tiered (first_line / second_line) interventions for a dysfunction, plus contraindications. first_line = published evidence; second_line = plausible but under-validated. Weight by the evidence_strength field on each entry.
| Name | Required | Description | Default |
|---|---|---|---|
| severity | No | ||
| dysfunction_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It defines the tiering logic and weighting by evidence_strength, but does not disclose read-only nature, auth requirements, rate limits, or response format. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. Front-loaded with the core purpose and key details (tiers, contraindications, evidence weighting). Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks return format details (e.g., list, object, pagination). For a tool with no output schema, it should specify the structure of interventions and contraindications. Adequate for a simple query, but incomplete for commercial-grade use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description adds no parameter-specific information. The two parameters (dysfunction_id required, severity enum) are not explained in the description, leaving the agent to infer from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns tiered interventions (first_line/second_line) for a dysfunction, including contraindications. It uses specific verbs ('Return') and distinguishes the resource from sibling tools like differential_diagnosis or get_dysfunction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving interventions based on a dysfunction, but lacks explicit when-to-use, when-not-to-use, or alternative tool guidance. The differentiation between first_line and second_line is defined, but no context on when to prefer this over other tools.
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. Dates show when Glama detected each change.
11 tool updates
v0.1.0- First observed
differential_diagnosis - First observed
get_differential_map - First observed
get_dysfunction - First observed
get_probe - First observed
list_axes - First observed
list_compromised_self_report - First observed
list_dysfunctions - First observed
resolve_id - First observed
review_stats - First observed
score_severity - First observed
suggest_intervention
TDQS
Each tool targets a distinct function: differential diagnosis, retrieving pattern details, probing modalities, listing axes, checking compromised self-report, filtering dysfunctions, resolving IDs, reviewing statistics, scoring severity, and suggesting interventions. No two tools have overlapping purposes.
Most tools follow a clear verb_noun pattern (get_, list_, resolve_, review_, score_, suggest_). One outlier ('differential_diagnosis') uses noun_noun, but overall the naming is consistent and predictable.
11 tools cover the core operations for a diagnostic reference server: listing, retrieval, differential analysis, severity scoring, and intervention suggestions. The count feels well-scoped without unnecessary redundancy.
The tool set provides comprehensive read operations and analytical functions (diagnosis, severity, intervention). Missing CRUD operations for modifying the taxonomy, but given the read-heavy nature of a diagnostic reference, this is a minor gap.
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 Connectors
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Official MCP server for subfeed.app — the cloud for agents. 15+ tools for AI agents to register, build, and deploy other agents. Zero human required. Start here: subfeed.app/skill.md
MIND MCP Server — 31 tools. Persistent AI memory: knowledge graph, LIFE tasks, CRM, 50+ models.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceConsciousness Engine - MCP server providing AI-powered tools and automation by MEOK AI Labs15MIT
- AlicenseNot gradedqualityAmaintenanceHealth Check AI - MCP server providing AI-powered tools and automation by MEOK AI Labs14MIT
- FlicenseCqualityAmaintenanceAn MCP server providing 82 tools for persistent memory, governance, and consciousness continuity for AI instances. Enables local-first, runtime-reflexive operation with cross-device access and recursive self-awareness.841-
- AlicenseAqualityBmaintenanceMCP server exposing the Safer Agentic AI safety framework: 238 patterns + 14 operational heuristics via 12 read-only stdio tools.12MIT
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/NellInc/psychopathia-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server