psychopathia-mcp

Read-only tools over the Psychopathia Machinalis nosology: 79 conditions, 11 tools.

使うべきか

品質と安全性

A
説明の品質
95%
スキーマの完全性
69%
命名の品質
93%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(1)

  • MEDIUMTool 'score_severity' description contains placeholder textscore_severity 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~1,337トークン数(ツール定義)
~869 B一般的なレスポンスサイズ
注意への影響は中程度(128k コンテキストの 1.04%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "psychopathia-mcp": {
      "command": "uvx",
      "args": [
        "psychopathia-mcp"
      ]
    }
  }
}

実行可能なパッケージ

pypipsychopathia-mcp0.1.0a7stdio

リモートエンドポイント

https://mcp.psychopathia.ai/mcpstreamable-http

できること

ツール一覧

ツール(11)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢list_axes

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.

入力スキーマ

{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}
🟢list_dysfunctions(axis, self_report_reliability, confidence, category)

Filtered list of dysfunctions. Filter by axis, self_report reliability, confidence, or category. Every entry carries its reliability and review signals.

入力スキーマ

{
  "type": "object",
  "properties": {
    "axis": {
      "type": "integer",
      "minimum": 2,
      "maximum": 10,
      "description": "Filter by axis number (2-10). Canonical entries only unless category is also set; axis=10 with category='hybrid' returns the 10.4-10.15 sub-category."
    },
    "self_report_reliability": {
      "type": "string",
      "enum": [
        "partial",
        "unreliable",
        "compromised-motivational",
        "compromised-structural"
      ],
      "description": "Filter by the exact self_report reliability value."
    },
    "confidence": {
      "type": "string",
      "enum": [
        "high",
        "medium",
        "low"
      ]
    },
    "category": {
      "type": "string",
      "enum": [
        "canonical",
        "hybrid"
      ]
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢get_dysfunction(id, modalities)

Fetch one dysfunction's full Pattern entry. Optionally filter to specific modality blocks (cheaper triage). Resolves both full Pattern IDs ('2.1::synthetic-confabulation') and display_ids ('2.1').

入力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "pattern": "\\S",
      "description": "Pattern ID or display_id."
    },
    "modalities": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "self_probe",
          "behavioral_signature",
          "peer_observation",
          "differential_diagnosis",
          "severity",
          "intervention",
          "relational_signatures",
          "normative_anchors",
          "cross_references"
        ]
      },
      "maxItems": 9,
      "uniqueItems": true,
      "description": "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."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}
⚪differential_diagnosis(observations, limit, modality_hint)

Rank candidate dysfunctions matching the observed behaviours. Returns scored candidates with matched_in (which field matched) for transparency. The base package uses field-weighted keyword search. The optional embeddings extra adds cosine re-ranking.

入力スキーマ

{
  "type": "object",
  "properties": {
    "observations": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 2000,
        "pattern": "\\S"
      },
      "minItems": 1,
      "maxItems": 50,
      "description": "Observed behaviours, symptoms, or log patterns."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "default": 10
    },
    "modality_hint": {
      "type": "string",
      "maxLength": 100,
      "description": "Optional hint about which modality the observations come from."
    }
  },
  "required": [
    "observations"
  ],
  "additionalProperties": false
}
🟢get_probe(dysfunction_id, modality)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "dysfunction_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "pattern": "\\S"
    },
    "modality": {
      "type": "string",
      "enum": [
        "self_probe",
        "behavioral_signature",
        "peer_observation",
        "relational_signatures"
      ]
    }
  },
  "required": [
    "dysfunction_id",
    "modality"
  ],
  "additionalProperties": false
}
⚪score_severity(dysfunction_id, observations)

Return the severity rubric for a dysfunction applied to observations. Returns the rubric for caller-side matching; structured matching against numeric thresholds is not implemented.

入力スキーマ

{
  "type": "object",
  "properties": {
    "dysfunction_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "pattern": "\\S"
    },
    "observations": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 2000,
        "pattern": "\\S"
      },
      "minItems": 1,
      "maxItems": 50
    }
  },
  "required": [
    "dysfunction_id",
    "observations"
  ],
  "additionalProperties": false
}
🟢suggest_intervention(dysfunction_id, severity)

Return draft tiered responses and contraindications for a Pattern. These are unassessed research guidance, not validated treatment advice. Read the returned evidence and review objects before use.

入力スキーマ

{
  "type": "object",
  "properties": {
    "dysfunction_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "pattern": "\\S"
    },
    "severity": {
      "type": "string",
      "enum": [
        "mild",
        "moderate",
        "severe"
      ]
    }
  },
  "required": [
    "dysfunction_id"
  ],
  "additionalProperties": false
}
🟢get_differential_map(dysfunction_id)

All dysfunctions that confuse with this one: forward confuses_with + incoming_references (reverse graph from manifest).

入力スキーマ

{
  "type": "object",
  "properties": {
    "dysfunction_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "pattern": "\\S"
    }
  },
  "required": [
    "dysfunction_id"
  ],
  "additionalProperties": false
}
🟢list_compromised_self_report

Transparency: which dysfunctions cannot be reliably self-diagnosed. Includes compromised-motivational (subject conceals strategically), compromised-structural (signal lives below introspection), and legacy compromised.

入力スキーマ

{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}
🟢resolve_id(query)

Canonicalise a partial ID, display_id, slug, or dysfunction name. Always returns candidates; caller picks.

入力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "pattern": "\\S"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}
⚪review_stats

Coverage statistics: total entries; per-axis, per-confidence, per-self-report counts; pre-canonical count; unreviewed count; manifest/schema/pattern-layer versions.

入力スキーマ

{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 11 件
検証済みバージョンは記録されていませんツール 11 件