Skip to main content
Glama

Sensei MCP πŸ₯‹

PyPI

Python

License

Multi-persona engineering mentor with 64 specialized AI personas orchestrating collaborative guidance

πŸš€ NEW in v0.9.0: Complete Third-Party MCP Integration Suite - Multi-MCP orchestration with 6 integrated MCP servers (Serena, OpenMemory, GitHub, Context7, Tavily, Playwright), 13 workflow templates, and 10 executable demos! Tactical code execution (Sensei β†’ Serena), cross-project memory (OpenMemory), and GitHub-integrated workflows (PR reviews, commit analysis, issue triage). See Integration Guides for complete workflows.

NEW in v0.8.0: Complete Persona Portfolio (64 Personas) - All personas from claude-skills repository now integrated! Added 17 new personas including complete Design & UX team (6), Strategic Expansion skills (5), Critical Infrastructure gaps (5), and Meta-Navigation personas (2).

🌟 MCP Ecosystem Integration: Sensei MCP is designed to work seamlessly with other MCP servers (Context7, Tavily, Playwright, GitHub, OpenMemory, Sequential Thinking) to create a comprehensive CTO co-pilot. See MCP Integration Architecture for the complete vision.

v0.6.0: Granular Persona Content Access (Option B Architecture) - Fixed orchestrator placeholder bug with new content-provider architecture. MCP now provides persona SKILL.md content for Claude to analyze, instead of trying to perform analysis itself. 4 new granular tools for persona discovery, content access, session context, and consultation recording.

v0.5.0: Enhanced Discovery, CI/CD Integration, Team Collaboration & Database Expertise - Interactive demo mode, GitHub Actions/GitLab CI templates, session merging for teams.

v0.4.0: Analytics & Team Collaboration - Track persona effectiveness, export session summaries as ADRs, and share engineering decisions with your team.

Sensei transforms your engineering standards from passive documentation into an active mentor that injects relevant guidelines before Claude reasons, maintaining session memory of architectural decisions.

🀝 Human-LLM Partnership (The Killer Insight)

Human provides: Domain expertise, judgment, context, business constraints, strategic direction

LLM provides: Synthesis across 64 expert personas, pattern matching against 32,000 lines of wisdom, consistency checking, real-time intelligence

Together: CTO-level decisions at code-writing speed with multi-perspective analysis and no weak links


πŸš€ Quick Install

One-Click Install

Cursor

<img src="https://cursor.com/deeplink/mcp-install-dark.svg" alt="Install in Cursor">

CLI Install

Claude Code

claude mcp add sensei -- uvx sensei-mcp

Manual Configuration

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

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

Restart Claude Desktop after saving.

Add to your Windsurf MCP config:

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

Restart Windsurf after saving.

  1. Install Cline extension

  2. Open Cline sidebar β†’ MCP Servers icon β†’ Configure MCP Servers

  3. Add:

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

Restart VS Code after saving.

  1. Install Roo Code extension

  2. Configure MCP servers through Roo Code settings

  3. Add:

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

Restart VS Code after saving.

Note: Requires Zed Preview version

Add to Zed's context servers config:

{
  "context_servers": {
    "sensei": {
      "command": "uvx",
      "args": ["sensei-mcp"]
    }
  }
}

Restart Zed after saving.

  1. Install an MCP extension from VS Code marketplace

  2. Configure MCP servers in extension settings

  3. Add:

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

Restart VS Code after saving.


Related MCP server: Mimir

🎯 What is Sensei?

The Problem: Output styles and custom instructions are cosmeticβ€”applied AFTER Claude has already reasoned.

The Solution: Sensei injects engineering standards BEFORE reasoning based on:

  • 50+ file types (Python, JS/TS, Go, Java, Kotlin, Swift, Rust, GraphQL, Docker, k8s, etc.)

  • Operation context (CREATE, REFACTOR, DEBUG, SECURITY, etc.)

  • Keywords (multi-tenant, payment, async, etc.)

  • Session memory of architectural decisions

Result: Standards actually influence behavior, not just formatting.

Why This Matters

Output Styles (Cosmetic):

User: "Write an API endpoint"
Claude: [reasons about design]
Claude: [writes code]
Output Style: [formats the response]  ← Too late!

Sensei MCP (Active):

User: "Write an API endpoint"
Sensei: [injects API contracts, security, multi-tenancy standards]
Claude: [reasons WITH standards in context]
Claude: [writes code that follows standards]

⚑ Key Features

v0.6.0 - Granular Persona Content Access (Option B Architecture) 🎭

  • πŸ”§ Fixed Critical Bug: Orchestrator was returning placeholder text instead of real analysis

  • πŸ—οΈ New Architecture: MCP as content provider (not analysis engine)

    • MCP provides persona SKILL.md content

    • Claude (calling LLM) performs analysis using that content

    • Mirrors .claude/skills/ pattern for consistency

  • πŸ› οΈ 4 New Granular Tools:

    • get_persona_content() - Returns full SKILL.md for a specific persona

    • suggest_personas_for_query() - Intelligent persona selection with relevance scores

    • get_session_context() - Returns session memory (constraints, decisions, patterns) as JSON

    • record_consultation() - Records consultations after Claude performs analysis

  • πŸ“Š Benefits:

    • No LLM needed in MCP (no API keys, no costs, no latency)

    • Claude does what it's best at (analysis)

    • Predictable, deterministic MCP behavior

    • Extensible (just add SKILL.md files)

v0.5.0 - Enhanced Discovery, CI/CD Integration, Team Collaboration & Database Expertise πŸš€

  • πŸ” Interactive Persona Discovery - Find the right expert faster:

    • Enhanced list_available_skills() with 3 format modes (standard, detailed, quick)

    • CLI demo mode (sensei-mcp --demo) with 5 real-world scenarios

    • Intelligent context hints when <2 personas selected

    • Technology keyword detection (database, api, security, frontend, mobile, ml)

  • πŸ”§ CI/CD Integration Pack - Integrate Sensei into your development workflow:

    • GitHub Actions workflows for PR reviews and architecture checks

    • Pre-commit hooks (consistency, security, cost analysis)

    • GitLab CI pipeline with 3-stage validation

    • Enhanced analyze_changes() with persona suggestions

    • Comprehensive integration guide (500+ lines)

  • 🀝 Session Merge & Team Sync - Collaborate on architectural decisions:

    • Merge multiple developer sessions with conflict resolution

    • 4 merge strategies (latest, oldest, all, manual)

    • Session comparison for side-by-side analysis

    • Attribution tracking for all decisions

  • πŸ—„οΈ Database Architect Persona - Specialized database expert joins the team:

    • Schema design and normalization expertise

    • Query optimization and indexing strategies

    • Migration planning and scalability patterns

    • Multi-tenancy architecture guidance

v0.4.0 - Analytics & Team Collaboration πŸ“Š

  • πŸ“Š Session Analytics - Data-driven insights into persona usage and decision patterns:

    • Track which personas are most/least used

    • Context distribution (SECURITY, CRISIS, ARCHITECTURAL, etc.)

    • Decision velocity and consultation patterns

    • Time-based filtering (last 7 days, last 30 days, all time)

    • Export as markdown, JSON, or text

  • πŸ“„ Consultation Export - Share individual consultations as professional reports:

    • Markdown format with metadata (ID, timestamp, mode, context)

    • JSON format for CI/CD integration

    • Plain text for communication tools

  • πŸ“‹ Session Summaries - Export comprehensive ADRs (Architecture Decision Records):

    • Full decision history with rationale

    • Active constraints and agreed patterns

    • Recent consultation history

    • Configurable includes (decisions, consultations, constraints, patterns)

    • Perfect for team onboarding and alignment

v0.3.0 - Multi-Persona Orchestrator 🎭

  • 🎭 47 Specialized Personas - Skill Orchestrator coordinates expert perspectives across 12 categories:

    • Core (3): Snarky Senior Engineer, Pragmatic Architect, Legacy Archaeologist

    • Specialized (6): API Platform Engineer, Data Engineer, Database Architect, Frontend UX Specialist, ML Pragmatist, Mobile Platform Engineer

    • Operations (3): Site Reliability Engineer, Incident Commander, Observability Engineer

    • Security (2): Security Sentinel, Compliance Guardian

    • Platform (3): DevEx Champion, Platform Builder, QA Automation Engineer

    • Cost (1): FinOps Optimizer

    • Leadership (4): Empathetic Team Lead, Product Engineering Lead, Executive Liaison, Technical Writer

    • DevRel (4): Developer Advocate, Solutions Architect, Staff IC Advisor, Open Source Strategist

    • Strategic (6): M&A Due Diligence, Vendor Management, Technical Recruiting, Engineering Transformation, AI Ethics Governance, Data Strategy

    • Management (3): Engineering Manager, Director of Engineering, VP Engineering

    • Technical Leadership (2): Chief Architect, Principal Engineer

    • Coordination (3): Technical Program Manager, Technical Product Manager, Engineering Operations

    • Infrastructure (6): Database Reliability Engineer, Release Engineering Lead, Performance Engineer, Cloud Architect, Test Engineering Lead, Customer Success Engineer

    • Meta (1): Skill Orchestrator

  • 🧠 Context Detection - Intelligently routes queries to relevant personas (CRISIS, SECURITY, POLITICAL, ARCHITECTURAL, COST, TEAM, TECHNICAL)

  • 🀝 Collaborative Synthesis - Multiple perspectives with conflict resolution and consensus building

  • πŸ“Š Consultation Tracking - Session memory records which personas were consulted and why

  • ⚑ Multiple Modes:

    • orchestrated (default): 2-5 persona collaboration

    • quick: Just Snarky Senior Engineer for fast answers

    • crisis: Emergency team (Incident Commander, SRE, Executive Liaison)

    • standards: Legacy single-voice mode for backwards compatibility

Core Features (v0.2.x)

  • 🎯 Context-aware loading - Only 5-15% of rulebook per request (87.5% token savings)

  • 🧠 Session memory - Remembers architectural decisions across conversations

  • 🀝 Team Sync - Share decisions and rules via .sensei folder in your repo

  • πŸ•΅οΈ Git Awareness - Automatically infer context from staged files

  • πŸ“¦ 50+ file types - Comprehensive tech stack coverage

  • πŸ” Smart inference - Automatically determines relevant standards

  • πŸ›‘οΈ Consistent enforcement - No more re-litigating patterns

  • πŸš€ Zero configuration - Works immediately after install

  • πŸ”’ Privacy-first - Runs locally, no external services


πŸ“š Supported File Types

Programming Languages (20+)

Python, JavaScript, TypeScript, Go, Java, Kotlin, Swift, Ruby, Rust, PHP, C#, Scala, C/C++, Dart, Elixir, Clojure, Elm, Julia, R

Frontend & Web

React (JSX/TSX), Vue, Svelte, Astro, HTML, CSS, SCSS, SASS, LESS

Infrastructure & DevOps

Terraform, Docker, Kubernetes, nginx, Apache, Shell scripts (bash/zsh), Makefiles, HCL

Data & APIs

SQL, Prisma, GraphQL, Protobuf, Avro, CSV, XML, Jupyter notebooks

Config & Tools

YAML, JSON, TOML, ESLint, Prettier, Jest, Playwright, Cypress, Webpack, Vite, tsconfig.json

CI/CD

GitHub Actions, GitLab CI, Jenkins, CircleCI, Azure Pipelines

Mobile

Android (AndroidManifest.xml, build.gradle), iOS (Info.plist, Podfile)

Package Managers

package.json, Gemfile, Cargo.toml, go.mod, requirements.txt, Pipfile

Monitoring

Prometheus, Grafana, Datadog, New Relic, Sentry


πŸ› οΈ Usage

πŸ“– NEW: Complete Usage Guide with Real-World Examples

See detailed use cases including API design review, production crisis response, cost optimization, code review, and session-aware architecture decisions.

Sensei provides 20 MCP tools (4 new in v0.6.0, 2 in v0.5.0, 3 in v0.4.0, 3 in v0.3.0) + CLI demo mode:

NEW v0.6.0 - Granular Persona Content Tools

1. get_persona_content (NEW)

Get full SKILL.md content for a specific persona. Claude uses this content to analyze queries from that persona's perspective.

# Get full Security Sentinel content
content = get_persona_content(
  persona_name="security-sentinel",
  include_metadata=True  # Optional: includes description and expertise
)
# Returns: Complete SKILL.md with principles, personality, expertise, guidelines

# Claude then uses this content as context to analyze your query
# Example workflow:
# 1. Claude suggests personas β†’ ["security-sentinel", "api-platform-engineer"]
# 2. Claude gets content for each β†’ Full SKILL.md files
# 3. Claude analyzes from each perspective using the content
# 4. Claude synthesizes all perspectives into recommendation

2. suggest_personas_for_query (NEW)

Intelligent persona selection based on query analysis with relevance scores and rationale.

# Get persona suggestions for a query
suggestions = suggest_personas_for_query(
  query="How should we handle authentication for our API?",
  max_suggestions=5,  # Maximum number of suggestions (default: 5)
  context_hint="SECURITY"  # Optional: force specific context
)
# Returns JSON:
# {
#   "query": "How should we handle authentication...",
#   "detected_context": "SECURITY",
#   "suggestions": [
#     {
#       "name": "security-sentinel",
#       "display_name": "Security Sentinel",
#       "relevance": 0.95,
#       "rationale": "Expert in authentication, security"
#     },
#     {
#       "name": "api-platform-engineer",
#       "display_name": "API Platform Engineer",
#       "relevance": 0.82,
#       "rationale": "Expert in API design, contracts"
#     }
#   ]
# }

# Auto-detect context from query
suggest_personas_for_query(
  query="Our AWS bill is too high",
  max_suggestions=3
)
# Returns: finops-optimizer, pragmatic-architect, site-reliability-engineer

3. get_session_context (NEW)

Get session memory (constraints, decisions, patterns) as JSON for context-aware analysis.

# Get full session context
context = get_session_context(
  session_id="saas-backend",
  project_root="/path/to/repo"  # Optional: for project-local sessions
)
# Returns JSON:
# {
#   "session_id": "saas-backend",
#   "active_constraints": ["AWS only", "Python 3.11+", "PostgreSQL"],
#   "patterns_agreed": ["Use FastAPI", "JWT auth"],
#   "recent_decisions": [
#     {
#       "id": "dec-001",
#       "category": "architecture",
#       "description": "Use PostgreSQL for primary data store",
#       "rationale": "Team expertise, ACID guarantees",
#       "timestamp": "2025-01-23T10:30:00"
#     }
#   ]
# }

# Claude includes this context when analyzing to ensure consistency

4. record_consultation (NEW)

Record consultations in session history after Claude performs analysis.

# After Claude analyzes using persona content
record_consultation(
  query="Should we migrate to microservices?",
  personas_used=["pragmatic-architect", "site-reliability-engineer", "finops-optimizer"],
  session_id="saas-backend",
  project_root="/path/to/repo",  # Optional
  synthesis="[Claude's complete analysis and recommendation]"  # Optional
)
# Returns: "βœ… Consultation recorded: consult_42"

# This consultation is now in session history for:
# - Analytics (get_session_insights)
# - Export (export_session_summary)
# - Future context

v0.5.0 - Enhanced Discovery & Team Merge

CLI Demo Mode

Interactive walkthrough of Sensei's multi-persona capabilities.

# Run the interactive demo
sensei-mcp --demo

# Shows 5 real-world scenarios:
# - Architecture Decision (microservices migration)
# - Production Crisis (database outage)
# - Security Review (authentication audit)
# - Cost Optimization (cloud spending)
# - Code Quality (technical debt)

5. merge_sessions

Merge multiple developer sessions with intelligent conflict resolution.

# Merge two developer sessions
merge_sessions(
  session_ids=["alice-frontend", "bob-backend"],
  target_session_id="sprint-23",
  conflict_strategy="latest",  # "latest", "oldest", "all", "manual"
  session_id="sprint-23",
  project_root="/path/to/repo"
)
# Returns: MergeResult with decisions merged, conflicts detected, attribution tracking

# Manual conflict resolution
merge_sessions(
  session_ids=["alice-session", "bob-session"],
  target_session_id="team-session",
  conflict_strategy="manual"  # Returns conflicts for human resolution
)

6. compare_sessions

Compare two sessions side-by-side before merging.

compare_sessions(
  session_a_id="alice-session",
  session_b_id="bob-session",
  session_id="default",
  project_root="/path/to/repo"
)
# Returns: Markdown comparison with decisions, constraints, patterns diff

v0.4.0 Tools - Analytics & Collaboration

7. get_session_insights

Get data-driven insights into persona usage, consultation patterns, and decision velocity.

# Get insights for last 7 days
get_session_insights(
  session_id="saas-backend",
  time_range="last_7_days",  # "last_7_days", "last_30_days", "all_time"
  format="markdown",  # "markdown", "json", "text"
  min_consultations=2  # Only include personas with 2+ consultations
)
# Returns: Most/least used personas, context distribution, decision metrics

# Get JSON for CI/CD integration
get_session_insights(
  session_id="saas-backend",
  format="json"
)

8. export_consultation

Export a single consultation as a shareable report.

# Export as markdown with full metadata
export_consultation(
  consultation_id="c-2025-01-22-001",
  session_id="saas-backend",
  format="markdown",  # "markdown", "json", "text"
  include_metadata=True
)
# Returns: Professional report with query, personas consulted, synthesis, linked decision

# Export as JSON for API integration
export_consultation(
  consultation_id="c-2025-01-22-001",
  format="json"
)

9. export_session_summary

Export comprehensive ADRs and session summaries for team sharing.

# Full session export with all sections
export_session_summary(
  session_id="saas-backend",
  format="markdown",  # "markdown", "json", "text"
  include=["decisions", "consultations", "constraints", "patterns"],
  max_consultations=10
)
# Returns: ADRs, consultation history, constraints, patterns in markdown

# Export only decisions as JSON
export_session_summary(
  session_id="saas-backend",
  format="json",
  include=["decisions"]
)

v0.3.0 Tools - Multi-Persona Orchestrator

Note: get_engineering_guidance() and consult_skill() will be deprecated in v0.7.0. Use the new v0.6.0 granular tools instead (get_persona_content, suggest_personas_for_query, get_session_context, record_consultation).

10. get_engineering_guidance

Get collaborative multi-persona guidance on any engineering question.

# Example: Architecture decision
get_engineering_guidance(
  query="Should we use microservices or a monolith for our SaaS app?",
  mode="orchestrated",  # default: auto-selects 2-5 relevant personas
  session_id="saas-backend",
  output_format="standard"
)
# Returns: Synthesis from Pragmatic Architect, Snarky Senior Engineer,
#          Product Engineering Lead with consensus and tensions

# Quick mode - fast answer from just Snarky
get_engineering_guidance(
  query="How do I fix this API bug?",
  mode="quick"  # Only Snarky Senior Engineer responds
)

# Crisis mode - emergency team
get_engineering_guidance(
  query="Production database is down!",
  mode="crisis"  # Incident Commander, SRE, Executive Liaison
)

# Request specific personas
get_engineering_guidance(
  query="How do we reduce our AWS bill?",
  specific_personas=["finops-optimizer", "pragmatic-architect"]
)

11. consult_skill

Consult a single persona directly for targeted expertise.

consult_skill(
  skill_name="security-sentinel",
  query="Review this authentication implementation for vulnerabilities",
  session_id="saas-backend"
)

12. list_available_skills

Discover all 64 available personas organized by category.

# List all personas (standard format)
list_available_skills()

# Detailed format with examples and metadata
list_available_skills(format="detailed")

# Quick format (names only)
list_available_skills(format="quick")

# List by category
list_available_skills(category="operations")  # SRE, Incident Commander, etc.
list_available_skills(category="specialized")  # Security, FinOps, Database Architect, etc.

Core Tools (v0.2.x) - Still Supported

13. get_engineering_context (Legacy)

Smart context injection - loads relevant standards based on files and operation.

Note: In v0.3.0, this is now called via get_engineering_guidance(..., mode="standards") for backwards compatibility.

# Example: Working on payment API
get_engineering_context(
  operation="CREATE",
  file_paths=["api/payments.py"],
  description="Building Stripe payment endpoint",
  session_id="saas-backend"
)
# Returns: API contracts, security, multi-tenancy, idempotency standards

14. record_decision

Save architectural decisions to prevent re-litigation.

record_decision(
  category="architecture",
  description="Use PostgreSQL for primary data store",
  rationale="Team expertise, ACID guarantees, proven at scale",
  session_id="saas-backend"
)

15. validate_against_standards

Pre-implementation validation check.

validate_against_standards(
  design_description="REST API with JWT auth",
  focus_areas=["security", "multi-tenant"],
  session_id="saas-backend"
)

16. get_session_summary

Review all decisions and constraints for current project.

get_session_summary(session_id="saas-backend")

17. list_sessions

Manage multiple projects with separate session states.

list_sessions()

18. query_specific_standard

Direct access to specific rulebook sections.

query_specific_standard(
  section_name="multi_tenancy",
  session_id="saas-backend"
)

19. check_consistency

Validate proposed changes against past decisions.

check_consistency(
  proposed_change="Switch from Postgres to MongoDB",
  session_id="saas-backend"
)

20. analyze_changes

Automatically infer context from staged git changes (enhanced in v0.5.0 with persona suggestions).

analyze_changes(project_root="/path/to/repo")
# Returns: File changes, diff stats, and suggested personas based on file patterns

🀝 Team Sync & Project Isolation

Sensei supports sharing decisions and rules with your team:

  1. Create a .sensei folder in your project root.

  2. Add rules.md for custom project-specific rules.

  3. Run tools with project_root: Decisions will be saved to .sensei/decisions.md.

This allows you to commit your engineering memory to Git!


πŸ—οΈ How It Works

  1. Context Inference Engine analyzes:

    • File patterns (API routes, DB schemas, tests, etc.)

    • Operation type (CREATE, REFACTOR, DEBUG, etc.)

    • Keywords (tenant, payment, async, etc.)

  2. Rulebook Loader extracts relevant sections:

    • 57 total sections mapped to 32 file patterns

    • Core sections always loaded (principles, philosophy)

    • Task-specific sections loaded on demand

  3. Session Manager persists decisions:

    • Stored in $HOME/.sensei/sessions/<project>.json

    • Human-readable JSON format

    • Loaded automatically on each tool call

File Pattern Examples

File Type

Triggers

Example Files

API Files

API contracts, security, multi-tenancy

api/billing.py, routes/users.ts

Database

Data persistence, security, multi-tenancy

migrations/001.sql, schema.prisma

Tests

Testing standards, code quality

test_api.py, api.spec.ts

Infrastructure

Cloud platform, compliance, cost

main.tf, docker-compose.yml, k8s/*.yaml

CI/CD

Delivery, testing, observability

.github/workflows/*.yml, Jenkinsfile

Frontend

Performance, i18n, security (XSS)

App.tsx, index.html, styles.css

Mobile

Cloud, dependencies, compliance

AndroidManifest.xml, Podfile


πŸ’‘ Example Workflows

Architecture Decision (v0.3.0 Multi-Persona)

# 1. Get multi-persona guidance on architecture
result = get_engineering_guidance(
  query="Should we migrate from a monolith to microservices? We have 5 engineers and 10K users.",
  mode="orchestrated",  # Auto-selects relevant personas
  session_id="saas-backend"
)
# Personas consulted: Pragmatic Architect, Snarky Senior Engineer, Product Engineering Lead
# Synthesis includes: Consensus points, tensions/trade-offs, recommendation

# 2. Consult specific expert for follow-up
consult_skill(
  skill_name="finops-optimizer",
  query="What's the cost impact of microservices vs monolith?",
  session_id="saas-backend"
)

# 3. Record the decision
record_decision(
  category="architecture",
  description="Stay monolith for now, plan modular architecture",
  rationale="Team size and user scale don't justify microservices complexity yet",
  session_id="saas-backend"
)

Production Incident (Crisis Mode)

# Crisis mode activates emergency response team
get_engineering_guidance(
  query="Production database has 10K connections and is timing out!",
  mode="crisis",  # Incident Commander, SRE, Executive Liaison
  session_id="saas-backend"
)
# Returns: Immediate triage steps, communication plan, root cause analysis

Starting a New Feature (v0.2.x Legacy Mode)

# 1. Get context for the feature (legacy standards mode)
get_engineering_context(
  operation="CREATE",
  file_paths=["api/webhooks.py"],
  description="Stripe webhook handler for subscription events",
  session_id="saas-backend"
)

# 2. Record key decisions
record_decision(
  category="architecture",
  description="Use idempotent webhook processing with deduplication",
  rationale="Webhooks can be retried, need to handle duplicates safely",
  session_id="saas-backend"
)

# 3. Validate before implementation
validate_against_standards(
  design_description="POST /webhooks/stripe with signature verification",
  focus_areas=["security", "api"],
  session_id="saas-backend"
)

Code Review

# Load relevant standards for review
get_engineering_context(
  operation="REVIEW",
  file_paths=["api/users.py", "db/queries.sql"],
  description="User management PR - check multi-tenancy",
  session_id="saas-backend"
)

# Check consistency with past decisions
check_consistency(
  proposed_change="Add user_id index without tenant_id",
  session_id="saas-backend"
)

Debugging Production Issue

# Get observability and debugging context
get_engineering_context(
  operation="DEBUG",
  file_paths=["services/payment_processor.py"],
  description="Investigating payment timeout issues",
  session_id="saas-backend"
)

# Query specific standards
query_specific_standard(
  section_name="observability",
  session_id="saas-backend"
)

πŸ“– Documentation

Getting Started

MCP Ecosystem Integration (NEW)

Technical Documentation


πŸ”§ Development

Local Setup

git clone https://github.com/amarodeabreu/sensei-mcp.git
cd sensei-mcp
pip install -e .

Run Tests

pytest tests/

Code Formatting

black src/ tests/
isort src/ tests/

🀝 Contributing

Contributions welcome! See CONTRIBUTING.md for:

  • Development setup

  • Running tests

  • Code style guidelines

  • PR submission process


πŸ“Š Comparison: Before & After

Before Sensei

❌ Output styles applied after reasoning ❌ Repeating same context every conversation ❌ Re-litigating architectural decisions ❌ Forgetting past constraints ❌ Loading entire rulebook (40% of tokens)

After Sensei

βœ… Standards influence reasoning before code is written βœ… Context-aware loading (5-15% of rulebook) βœ… Session memory persists decisions βœ… Consistent enforcement across conversations βœ… Multi-project support with isolation


πŸ† ROI Calculation

Team of 5 engineers:

  • 10 mins/day saved per engineer avoiding re-explanation

  • 5 architectural re-litigations prevented/week

  • 30 mins/incident saved with better observability

Annual Savings: ~500 hours of engineering time


πŸ“„ License

Apache 2.0 - See LICENSE for details



πŸ™ Acknowledgments


Made with πŸ₯‹ by amarodeabreu

Available Tools

25 tools
analyze_changesB

Analyze staged git changes to identify relevant engineering contexts (v0.5.0 enhanced).

Args: project_root: Absolute path to the project root include_diff_stats: Include line change statistics (additions/deletions) suggest_personas: Suggest relevant personas based on change context

Returns: Summary of changed files, contexts, and recommended personas for review

ParametersJSON Schema
NameRequiredDescriptionDefault
project_rootYes
suggest_personasNo
include_diff_statsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavioral traits. It mentions the input parameters and the return summary, but does not state whether the tool is read-only, what happens if no staged changes exist, any permissions needed, or potential side effects. This leaves significant behavioral ambiguity.

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

Conciseness4/5

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

The description is concise and front-loaded with a clear summary sentence. The 'Args' and 'Returns' sections are structured and each line adds information. However, the inclusion of '(v0.5.0 enhanced)' is unnecessary clutter and doesn't add value for an agent selecting or invoking the tool.

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 there is an output schema and the description explains the return content in brief, the basic functionality is covered. However, it lacks broader context about when to use this tool in a workflow, what 'relevant engineering contexts' means, or any limitations/requirements. The sibling tools suggest a larger system, and this description does not explain how this tool fits in, making it minimally viable 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?

The schema description coverage is 0%, so the description must compensate. It adds meaning beyond the schema titles: 'project_root' is clarified as 'Absolute path', 'include_diff_stats' is explained as 'line change statistics (additions/deletions)', and 'suggest_personas' is described as 'Suggest relevant personas based on change context'. These explanations add genuine semantic value, though they do not cover all possible nuances or defaults (though defaults are in the schema).

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: 'Analyze staged git changes to identify relevant engineering contexts.' This uses a specific verb (analyze), resource (staged git changes), and intended outcome (identify contexts). It also distinguishes itself from siblings by focusing on git changes rather than queries, sessions, or standards.

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 does not mention any exclusions, prerequisites (e.g., needing staged changes to exist), or scenarios where other tools would be more appropriate. The usage is only implied by the description itself, but no explicit 'when to use' guidance is given.

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

check_consistencyB

Check if a proposed change is consistent with session decisions and constraints.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNodefault
project_rootNo
proposed_changeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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. It only says 'check', which implies a non-mutating read operation, but it does not disclose what happens when inconsistent, whether it depends on an existing session, or any other behavioral details.

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, front-loaded sentence that efficiently states the tool's purpose with no filler or redundancy.

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

Completeness2/5

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

Despite having an output schema, the description lacks context on how session decisions/constraints are accessed, what prerequisites exist (e.g., a session must exist), and why this tool should be selected over the many related session and validation tools. The description is underspecified for a tool with three parameters and no annotations.

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

Parameters2/5

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

Schema description coverage is 0%. The description clarifies 'proposed_change' by using that phrase, but session_id and project_root are completely unexplained. The description does not 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.

Purpose5/5

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

The description clearly states the verb 'check' and the resource 'a proposed change' against 'session decisions and constraints', which is specific and distinguishes it from sibling tools like validate_against_standards.

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 usage is implied: use this when you have a proposed change and need to verify consistency with session context. However, there is no explicit guidance on when not to use it or how it differs from alternatives like validate_against_standards or analyze_changes.

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

compare_sessionsA

Compare two sessions and return differences (v0.5.0).

Useful for understanding what decisions and patterns differ between two developer sessions or team branches before merging.

Args: session_a_id: First session ID session_b_id: Second session ID project_root: Optional project root for local sessions

Returns: Formatted comparison showing unique and shared items

Examples: # Compare two developer sessions compare_sessions( session_a_id="alice-session", session_b_id="bob-session" )

# Compare feature branches
compare_sessions(
    session_a_id="feature-auth",
    session_b_id="feature-payments"
)
ParametersJSON Schema
NameRequiredDescriptionDefault
project_rootNo
session_a_idYes
session_b_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the return format and gives a sense of being a non-destructive comparison, but does not explicitly state read-only behavior, error cases, or system requirements.

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 well-structured with Purpose, Use case, Args, Returns, and Examples. Each section earns its place and is efficiently written, with examples illustrating usage.

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 output schema exists, return values are covered. The description includes inputs, outputs, usage context, and examples. Missing edge behaviors such as error handling or local vs remote session handling, but overall robust.

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 compensates by providing an Args section: 'session_a_id: First session ID', 'session_b_id: Second session ID', 'project_root: Optional project root for local sessions'. This adds meaning beyond the bare schema, though not highly detailed.

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: 'Compare two sessions and return differences' with a specific verb and resource. It distinguishes from siblings like merge_sessions by focusing on comparison, not merging.

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

Usage Guidelines4/5

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

Provides clear context: 'Useful for understanding what decisions and patterns differ between two developer sessions or team branches before merging.' This implies usage timing and purpose, though it does not explicitly name or exclude alternative tools.

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

consult_skillA

Consult a single skill persona directly.

⚠️ DEPRECATION NOTICE (v0.6.0): This tool will be deprecated in v0.7.0. Please use get_persona_content() instead:

  • get_persona_content(persona_name=skill_name) - Get full SKILL.md content Then Claude performs the analysis using that content as context.

Use this when you want guidance from a specific expert without orchestration.

Args: skill_name: Persona name (e.g., "snarky-senior-engineer", "security-sentinel") query: Your question session_id: Session identifier project_root: Absolute path to project root

Returns: The persona's perspective

Available Personas: Core: snarky-senior-engineer, pragmatic-architect, legacy-archaeologist Specialized: api-platform-engineer, data-engineer, frontend-ux-specialist, ml-pragmatist, mobile-platform-engineer Operations: site-reliability-engineer, incident-commander, observability-engineer Security: security-sentinel, compliance-guardian Platform: devex-champion, platform-builder, qa-automation-engineer Cost: finops-optimizer Leadership: empathetic-team-lead, product-engineering-lead, executive-liaison, technical-writer Meta: skill-orchestrator

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
session_idNodefault
skill_nameYes
project_rootNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It does disclose the deprecation status and that it returns 'The persona's perspective,' which are useful behavioral traits. However, it does not explicitly state whether the operation is read-only, whether it has side effects (e.g., session recording), or any limitations/errors. The lack of side-effect discussion for a tool that takes session_id and project_root leaves some ambiguity.

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 structured with clear sections (deprecation notice, usage, args, returns, personas). It is longer than necessary due to a detailed persona list, but that list directly supports the skill_name parameter and is not filler. The deprecation notice, while verbose, is essential for correct tool selection. Overall, each section earns its place, and the front-loaded deprecation notice is well-positioned.

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?

For a simple 4-parameter tool with an output schema, the description provides enough to select and invoke correctly: purpose, usage, parameter semantics, return value, and available personas. The deprecation notice adds crucial context about its lifecycle. However, it omits potential side effects (e.g., whether the consultation is persisted) and any prerequisite conditions (e.g., need project_root for some queries), which slightly reduces completeness. Overall, it is nearly complete for its complexity.

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, and it does via an Args section that explains each parameter: skill_name with examples, query as 'Your question,' session_id as 'Session identifier,' and project_root as 'Absolute path to project root.' This adds meaning beyond property names, though it doesn't clarify defaults (e.g., session_id has a default 'default') or formats beyond the examples. Still, it largely fills the gap.

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 opens with 'Consult a single skill persona directly,' which clearly specifies the verb (consult) and resource (skill persona). It also states the purpose: 'Use this when you want guidance from a specific expert without orchestration,' differentiating it from orchestration-heavy siblings like get_engineering_guidance or suggest_mcps_for_query. The provided persona list further clarifies the exact resource scope.

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

Usage Guidelines5/5

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

Explicit usage guidance is present: 'Use this when you want guidance from a specific expert without orchestration.' Additionally, the deprecation notice explicitly names the alternative (get_persona_content) and instructs when to use it instead, offering clear when/not-to-use context. This is strong guidance beyond just a generic description.

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

export_consultationA

Export a single consultation as shareable report.

Perfect for sharing specific decision-making discussions with your team, documenting why you chose a particular approach, or creating ADRs.

Args: consultation_id: Consultation ID (e.g., "consult_1") session_id: Session identifier project_root: Absolute path to project root format: Output format ("markdown", "json", "text")

Returns: Formatted consultation report

Examples: # Export as markdown export_consultation( consultation_id="consult_5", session_id="my-project" )

# Export as JSON for CI/CD
export_consultation(
    consultation_id="consult_5",
    format="json"
)
ParametersJSON Schema
NameRequiredDescriptionDefault
formatNomarkdown
session_idNodefault
project_rootNo
consultation_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/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 the return type ('Formatted consultation report') and provides examples, but does not explicitly state whether the operation is read-only, if it writes files, or any permission requirements. This is a moderate level of transparency.

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 well-structured with an intro, use cases, Args, Returns, and Examples. Each section is concise and adds value, with no redundant text. The examples are particularly helpful.

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 moderate complexity (4 params, output schema exists), the description covers purpose, usage, parameters, and return type. It could be more explicit about the relationship between project_root and file output, and explicitly mention export_session_summary as an alternative for session-level exports, but overall it is fairly complete.

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 no parameter descriptions (0% coverage), so the description's Args list provides essential meaning. It explains each parameter (e.g., consultation_id with example, format with allowed values) and examples illustrate typical usage, though it could go deeper on optionality or constraints.

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 exports a single consultation as a shareable report, using the specific verb 'export' and resource 'single consultation'. This distinguishes it from sibling tools like export_session_summary, which likely exports session-level data.

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

Usage Guidelines4/5

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

The description provides clear use cases (sharing decision-making discussions, documenting rationale, creating ADRs) and implies the distinction from session-level exports. However, it does not explicitly mention when not to use this tool or name alternatives like export_session_summary.

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

export_session_summaryA

Export comprehensive session summary for team sharing.

Generates Architecture Decision Records (ADRs), consultation history, and active constraints/patterns. Perfect for:

  • Onboarding new team members

  • Documenting architectural decisions

  • Sharing team knowledge

  • Creating weekly/monthly reports

Args: session_id: Session identifier project_root: Absolute path to project root format: Output format ("markdown", "json", "text") include: Components to include (default: all) - "decisions": Architecture decisions - "consultations": Consultation history - "constraints": Active constraints - "patterns": Agreed patterns max_consultations: Max recent consultations to include (default: 10)

Returns: Comprehensive session summary report

Examples: # Full summary export_session_summary(session_id="my-project")

# Just decisions and constraints
export_session_summary(
    session_id="my-project",
    include=["decisions", "constraints"]
)

# JSON export for processing
export_session_summary(
    session_id="my-project",
    format="json"
)
ParametersJSON Schema
NameRequiredDescriptionDefault
formatNomarkdown
includeNo
session_idNodefault
project_rootNo
max_consultationsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses that the tool 'Generates' a comprehensive report and returns it, plus details the included components. However, it does not clarify whether 'export' writes to disk or simply returns a string, nor does it address potential side effects or permission requirements. This is a moderate gap given the ambiguity of the word 'export'.

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 well-organized: a one-sentence purpose, a bulleted list of use cases, an Args section with parameter explanations, and a Returns line. Examples are valuable and not duplicated in the schema. Every section earns its place; it is appropriately detailed without being bloated.

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

Completeness5/5

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

Given the tool has 5 parameters, no schema descriptions, and no annotations, the description thoroughly covers all necessary aspects: purpose, parameter semantics, return value, and usage examples. It is complete enough for an AI agent to select and invoke the tool correctly without additional context.

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

Parameters5/5

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

The schema has zero parameter descriptions, but the tool description compensates fully: it explains format options, the 'include' list with each item's meaning, and provides three concrete examples showing parameter combinations. This adds substantial meaning beyond the bare schema property titles and defaults.

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 'Export comprehensive session summary for team sharing' and goes into detail about producing ADRs, consultation history, and constraints/patterns. This distinguishes it from sibling tools like get_session_summary (which likely retrieves a summary) and export_consultation (which exports a single consultation). The verb+resource+scope is specific and unambiguous.

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

Usage Guidelines4/5

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

The description provides explicit use cases under 'Perfect for': onboarding, documenting decisions, sharing knowledge, and creating reports. It does not explicitly mention when NOT to use this tool or name alternatives like get_session_summary, but the use-case list makes the intended scenarios clear, earning a strong score rather than a top score.

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

get_engineering_contextA

Get relevant Sensei engineering context for the current task.

Args: operation: What you're doing (e.g., "reviewing API endpoints") file_paths: List of file paths involved description: Additional context about the task session_id: Session identifier project_root: Absolute path to the project root (for local rules/sessions)

Returns: Markdown-formatted engineering standards relevant to this task

ParametersJSON Schema
NameRequiredDescriptionDefault
operationNo
file_pathsNo
session_idNodefault
descriptionNo
project_rootNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the transparency burden. It discloses the return format ('Markdown-formatted engineering standards') and notes project_root is 'for local rules/sessions', but does not explicitly state read-only behavior 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.

Conciseness5/5

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

The purpose is stated in one sentence, followed by a clearly structured Args/Returns list. The description is scannable and appropriately sized for a 5-parameter tool with no fluff.

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?

The description covers purpose, all parameters, and return format, and an output schema exists. It lacks usage guidance and sibling differentiation, but is otherwise adequate for a retrieval tool.

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

Parameters5/5

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

All five parameters are described in the Args section with meaningful context beyond the schema (e.g., operation is 'What you're doing', file_paths is 'List of file paths involved'). This fully compensates for the 0% schema description coverage.

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?

Description clearly states 'Get relevant Sensei engineering context for the current task' with a specific verb and resource. It is clear but does not explicitly differentiate from siblings like get_engineering_guidance or get_session_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 for retrieving engineering standards by listing operation, file_paths, and description as inputs. However, it provides no explicit guidance on when to use this tool versus alternatives 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.

get_engineering_guidanceA

Get engineering guidance via multi-persona orchestration (DEFAULT in v0.3.0).

⚠️ DEPRECATION NOTICE (v0.6.0): This tool will be deprecated in v0.7.0. Please use the new granular tools instead:

  • suggest_personas_for_query() - Get persona suggestions

  • get_persona_content() - Get persona SKILL.md content

  • get_session_context() - Get session memory

  • record_consultation() - Record consultation after analysis

The new architecture provides content for Claude to analyze, rather than trying to perform analysis within the MCP server.

This is the NEW primary tool for getting engineering guidance. The Skill Orchestrator coordinates 21 specialized personas to provide holistic, multi-perspective analysis of your engineering questions.

Args: query: Your question or scenario mode: Analysis mode: - "orchestrated" (DEFAULT): Multi-persona analysis with intelligent selection - "quick": Single persona (Snarky Senior Engineer) for fast answers - "crisis": Emergency team (Incident Commander, SRE, Executive) - "standards": Legacy mode (engineering standards only, no personas) session_id: Session identifier project_root: Absolute path to project root (for local rules/sessions) specific_personas: Override auto-selection (e.g., ["security-sentinel", "pragmatic-architect"]) output_format: Response format ("brief", "standard", "executive")

Returns: Orchestrated multi-perspective guidance with synthesis and recommendations

Examples: # Auto-orchestrated (DEFAULT) get_engineering_guidance( query="Should we migrate to microservices?", session_id="saas-backend" )

# Crisis mode
get_engineering_guidance(
    query="Production database is down",
    mode="crisis"
)

# Specific personas
get_engineering_guidance(
    query="Review this payment API design",
    specific_personas=["security-sentinel", "api-platform-engineer"]
)
ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoorchestrated
queryYes
session_idNodefault
project_rootNo
output_formatNostandard
specific_personasNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose orchestration behavior, default mode, return value shape, and legacy standards mode. It also explains the architectural intent (content for Claude to analyze rather than in-server analysis), though it omits permission or rate-limit context.

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 Args, Returns, and Examples sections, making it easy to scan. However, the deprecation notice and contradictory status lines add considerable confusing baggage that could be trimmed without losing essential information.

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?

For a complex orchestration tool with multiple modes and alternatives, the description covers purpose, parameters, return semantics, and provides examples. The contradiction between deprecation and 'primary tool' status is a notable gap that affects completeness, but the presence of an output schema reduces the burden for return-value documentation.

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

Parameters5/5

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

The schema has 0% description coverage for its six parameters, but the description fully compensates by explaining every parameter, including mode enum values, persona overrides, session/project context, and output format. This adds significant meaning beyond the raw schema.

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 opening line clearly specifies the tool's function (get engineering guidance) and mechanism (multi-persona orchestration), distinguishing it from the granular sibling tools. However, the deprecation notice telling users to prefer new granular tools conflicts with the later claim that this is the NEW primary tool, which slightly muddies the intended purpose.

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

Usage Guidelines4/5

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

The description explicitly names alternative granular tools and says to use them instead, while also documenting mode-specific use cases (quick, crisis, standards, specific personas). The contradictory statement calling this the 'NEW primary tool' weakens the guidance, preventing a perfect score.

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

get_mcp_workflow_templateA

Get a pre-built multi-MCP workflow template.

Returns step-by-step workflow definitions for common scenarios, with optional parameter substitution for customization.

Args: template_name: Workflow template name Available templates: - "auth-security-review": Comprehensive auth security review - "performance-debug": Performance debugging workflow - "cost-optimization": Cloud cost analysis - "tech-due-diligence": Technology evaluation - "incident-postmortem": Incident analysis - "accessibility-audit": WCAG compliance check - "api-design-review": API design review

parameters: Optional dict of parameters to substitute
    Example: {
        "user_query": "Review FastAPI auth",
        "app_url": "https://app.example.com",
        "framework": "FastAPI"
    }

Returns: JSON with workflow steps, required MCPs, personas, and estimates

Example: # Get auth security review workflow get_mcp_workflow_template( template_name="auth-security-review", parameters={ "user_query": "Review authentication implementation", "app_url": "https://app.example.com/login", "framework": "FastAPI" } )

ParametersJSON Schema
NameRequiredDescriptionDefault
parametersNo
template_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/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 discloses return format ('JSON with workflow steps, required MCPs, personas, and estimates') and the behavior of optional parameter substitution. It does not explicitly state that the operation is read-only or has no side effects, but the 'Get a template' phrasing implies a safe read operation. The description adds meaningful behavioral context beyond the schema.

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 well-structured with distinct sections: a one-sentence summary, an 'Args' section describing each parameter, a 'Returns' section, and a concrete example. Every sentence earns its place by explaining a template name, parameter usage, or output format. It is appropriately sized for the tool's complexity and remains easy to scan.

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

Completeness5/5

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

For a tool with two parameters, one required, and an output schema present, the description is complete. It explains both parameters, enumerates valid template names, describes the return structure, and provides a working example. With no annotations, it still gives an agent enough context to select and invoke the tool correctly without needing to consult external documentation.

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

Parameters5/5

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

Schema description coverage is 0%, but the description fully compensates. It lists all valid values for template_name in a clear enumeration, which is critical since the schema provides no enum. For the 'parameters' object, it provides an example with fields like 'user_query', 'app_url', and 'framework', showing how substitution works. Both parameters are thoroughly explained despite the lack of schema-level descriptions.

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: 'Get a pre-built multi-MCP workflow template.' It specifies the resource (pre-built workflow templates) and the action (get), and it distinguishes itself from sibling tools like list_mcp_workflow_templates by focusing on retrieving a single template with customizable parameters rather than listing available ones. The list of available templates further reinforces the specific functionality.

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

Usage Guidelines4/5

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

The description provides strong context for when to use the tool by enumerating the available template names (e.g., 'auth-security-review', 'performance-debug') and giving a concrete example invocation. However, it does not explicitly mention when not to use this tool or directly compare it with alternatives such as list_mcp_workflow_templates. The usage context is clear, but exclusions are missing.

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

get_persona_contentA

Get full skill content for a specific persona.

This returns the complete SKILL.md content that defines the persona's expertise, principles, personality, and guidelines. The calling LLM should use this content to analyze queries from that persona's perspective.

MCP Design Philosophy: This tool returns CONTENT for the LLM to use, not pre-generated analysis. The calling LLM (Claude) receives the persona content and performs the analysis itself.

Args: persona_name: Name of persona (e.g., "security-sentinel", "pragmatic-architect") include_metadata: Include metadata header (name, description, expertise)

Returns: Full persona skill content (markdown format)

Example: # Get Security Sentinel's content content = get_persona_content("security-sentinel")

# Claude then uses this content to analyze from that perspective
ParametersJSON Schema
NameRequiredDescriptionDefault
persona_nameYes
include_metadataNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well. It discloses the return format (markdown), the content composition (expertise, principles, personality, guidelines), and the design philosophy that no analysis is performedβ€”only content is returned. It also details the include_metadata behavior and provides a usage example, offering rich context beyond a mere getter.

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, design philosophy, args, returns, and an example. It is slightly verboseβ€”the design philosophy and example could be condensedβ€”but every section adds value and the critical information is front-loaded in the first two sentences.

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 (2 params, no annotations) and the presence of an output schema, the description is sufficiently complete. It covers parameter meanings, return type, and the intended downstream usage. It does not discuss edge cases like invalid persona names, but that is not essential for a straightforward retrieval tool.

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

Parameters5/5

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

The schema provides zero description coverage for its two parameters, so the description must compensate and does so thoroughly. It explains persona_name with concrete examples ('security-sentinel', 'pragmatic-architect') and specifies that include_metadata controls the presence of a metadata header (name, description, expertise). This gives the agent full semantic understanding of both arguments.

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 opens with a specific verb-resource pair: 'Get full skill content for a specific persona.' It further clarifies that it returns the complete SKILL.md content, and the explicit design philosophy ('returns CONTENT for the LLM to use, not pre-generated analysis') distinguishes it from analysis-oriented sibling tools like suggest_personas_for_query.

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

Usage Guidelines4/5

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

The description states when to use the tool: 'The calling LLM should use this content to analyze queries from that persona's perspective.' It also contrasts with pre-generated analysis, implying when not to rely on it. However, it does not explicitly name alternative sibling tools to choose instead, which would have made the guidance even stronger.

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

get_session_contextA

Get session context (constraints, decisions, patterns) for context-aware analysis.

Returns session memory that can be included when asking personas to analyze queries. This ensures consistency with previous decisions and agreed patterns.

MCP Design Philosophy: This tool returns session memory as data. The LLM includes this context when analyzing queries to ensure consistency with previous decisions.

Args: session_id: Session identifier project_root: Optional project root for local sessions

Returns: JSON with session constraints, patterns, and recent decisions

Example: # Get session context context = get_session_context(session_id="my-project")

# LLM includes this when asking persona to analyze:
# "Given these constraints: ..., analyze this query"
ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNodefault
project_rootNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/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 clearly states the tool returns session memory as data, avoiding any implication of side effects, and specifies the return format as JSON with constraints, patterns, and decisions. However, it omits details about error conditions (e.g., nonexistent session) or permission requirements, which would enhance transparency.

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 well-structured and front-loaded with the core purpose. The additional sections (Args, Returns, Example, Design Philosophy) are each concise and contribute directly to understanding usage. No sentence is wasted, and the length is appropriate given the lack of schema descriptions and annotations.

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

Completeness5/5

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

Given the tool's low complexity (2 optional parameters) and the presence of an output schema, the description is thorough. It covers purpose, usage, parameter meaning, return values, and an example. It also explains the intended integration with personas, making it fully sufficient for an agent to select and invoke the tool correctly.

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 brief but meaningful semantics: session_id is the session identifier, and project_root is an optional project root for local sessions. This adds context beyond the raw schema types and defaults, though it could elaborate further on accepted formats or behaviors.

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 gets session context (constraints, decisions, patterns) for context-aware analysis. This specific resource listing distinguishes it from sibling tools like get_session_summary or get_engineering_context, making its purpose unambiguous.

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

Usage Guidelines5/5

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

The description explicitly explains when to use the tool: to ensure consistency with previous decisions and agreed patterns. It goes further to describe the MCP design philosophy and provides a concrete example of how the returned context should be included in prompts to personas, offering clear usage guidance.

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

get_session_insightsA

Get comprehensive analytics and insights for a session.

Provides data-driven insights into persona usage patterns, consultation frequency, decision-making trends, and session health metrics.

Args: session_id: Session identifier project_root: Absolute path to project root (for local sessions) time_range: Analysis window: - "all_time" (default): All consultations - "last_7_days": Last 7 days - "last_30_days": Last 30 days format: Output format ("markdown", "json", "text")

Returns: Formatted analytics report with: - Persona usage statistics (most/least used) - Context distribution (CRISIS, SECURITY, etc.) - Mode usage (orchestrated, quick, crisis, standards) - Decision metrics and velocity - Session health indicators

Examples: # Get all-time insights get_session_insights(session_id="my-project")

# Last 30 days in JSON
get_session_insights(
    session_id="my-project",
    time_range="last_30_days",
    format="json"
)
ParametersJSON Schema
NameRequiredDescriptionDefault
formatNomarkdown
session_idNodefault
time_rangeNoall_time
project_rootNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/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 explicitly details what the tool returns (including specific report sections) and clarifies parameter behavior (e.g., project_root is 'for local sessions', time_range options, format options). It does not explicitly state whether the operation is read-only or has side effects, but the 'Get' verb and analytic nature make it strongly inferred as non-mutating.

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 clear sections (overview, Args, Returns, Examples) and is appropriately sized for the complexity. It includes useful examples and return details without excessive verbosity. Slightly longer than necessary, but every sentence earns its place by providing actionable information.

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

Completeness5/5

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

Given the tool's complexity (4 parameters, rich analytics output) and the absence of annotations or an output schema, the description is exceptionally complete. It covers purpose, parameter semantics, return format, and usage examples. The output section clearly enumerates what the report will contain, making it easy for an agent to understand the tool's capabilities and limitations.

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

Parameters5/5

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

Schema description coverage is 0%, but the description compensates fully by providing detailed semantics for every parameter: session_id ('Session identifier'), project_root ('Absolute path to project root'), time_range (with enumerated values and defaults), and format (with allowed values). This goes far beyond the bare schema and adds essential context for proper usage.

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: 'Get comprehensive analytics and insights for a session.' It uses a specific verb ('Get') and resource ('session insights'), and enumerates the types of insights (persona usage, decision trends, health metrics). This distinguishes it from sibling tools like get_session_summary, which likely provides a basic summary rather than deep analytics.

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 through parameter explanations and examples (e.g., 'Get all-time insights', 'Last 30 days in JSON'), but does not explicitly state when to choose this tool over alternatives like get_session_summary or export_session_summary. There are no exclusions or alternative recommendations, so guidance is implied rather than explicit.

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

get_session_summaryC

Get a summary of the current session's decisions and context.

Args: session_id: Session identifier project_root: Absolute path to the project root

Returns: Summary of session state

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNodefault
project_rootNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden, but it only says 'Get a summary' without explaining permissions, side effects, return format specifics, or behavior with default parameters. It implies a read operation but adds minimal context beyond the tool's name.

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

Conciseness4/5

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

The description is brief and well-structured with Args and Returns sections, avoiding redundancy. However, its brevity sacrifices essential details, keeping it from a perfect score.

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

Completeness2/5

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

Despite having an output schema, the description lacks full context: it doesn't clarify how project_root is used, whether session_id is required despite having a default, or how this differs from get_session_context. The presence of many sibling summary/context tools makes this insufficient.

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

Parameters2/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, but it only offers terse labels like 'Session identifier' and 'Absolute path to the project root.' It does not explain defaults, nullability, or how session_id relates to 'current session.'

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 it retrieves a summary of session decisions and context, using a specific verb and resource. However, it does not differentiate this tool from sibling tools like get_session_context or export_session_summary.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like export_session_summary or get_session_insights. There are no exclusions, prerequisites, or example use cases.

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

list_available_skillsA

List all available skill personas with flexible detail levels.

Args: category: Optional filter (core, specialized, operations, security, platform, cost, leadership, meta) format: Output format: - "standard" (default): Name, description, and expertise areas - "detailed": Adds example queries, use cases, and related personas - "quick": One-line quick tips for each persona

Returns: Formatted list of available personas

Examples: # Standard list list_available_skills()

# Detailed format with examples
list_available_skills(format="detailed")

# Quick reference
list_available_skills(format="quick")

# Specific category
list_available_skills(category="operations", format="detailed")
ParametersJSON Schema
NameRequiredDescriptionDefault
formatNostandard
categoryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/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 transparently states the action ('List'), the return value ('Formatted list of available personas'), and the varying detail levels. The examples demonstrate expected behavior, and there is no indication of side effects or hidden complexities.

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 Args, Returns, and Examples sections, and the purpose is front-loaded. It is longer than strictly necessary due to four example blocks, but each example is useful and the overall layout remains scannable.

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

Completeness5/5

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

For a simple list tool, the description covers lifecycle, parameters, output formats, and usage scenarios. The presence of an output schema reduces the need to enumerate return fields, and the description sufficiently contextualizes the tool among its sibling listing/query tools.

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

Parameters5/5

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

Schema coverage is 0%, but the description fully compensates by documenting both parameters. 'category' lists all valid values, and 'format' explains the three output modes with behavioral differences. This gives the agent all parameter-level semantics needed.

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 opens with 'List all available skill personas with flexible detail levels', a specific verb+resource pair that immediately conveys the tool's function. It is clearly distinguished from sibling tools like get_persona_content and consult_skill, which focus on individual persona details or interactive consultation.

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

Usage Guidelines4/5

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

The description provides context by explaining the 'format' parameter options (standard, detailed, quick) and the category filter, with examples showing typical usage. However, it does not explicitly state when to choose this tool over alternatives, nor does it mention exclusions or fallback tools.

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

list_demosA

List all available demonstration workflows.

Returns a summary of executable demos that showcase multi-MCP orchestration capabilities.

Returns: JSON array of available demos with descriptions and example parameters

Example: # List all demos list_demos()

# Returns: 4 demos (auth-review, performance-debug, cost-analysis, api-review)
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the return format (JSON array with descriptions and example parameters) and an example result. However, it does not explicitly state that the operation is read-only or has no side effects, which would be useful for full transparency. The example helps, but the safety profile is not explicitly addressed.

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 main description, return specification, and example. It is not overly verbose, though the example section could be slightly tightened. The information is front-loaded with the core purpose in the first line, and each section serves a purpose.

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

Completeness5/5

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

For a zero-parameter listing tool with an output schema, the description is complete: it states what is being listed, the return type and content, and provides an example. There is no ambiguity about what the tool does or what it returns. The presence of an output schema further reduces the need to detail return values, and the description still covers them.

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

Parameters4/5

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

The tool takes zero parameters, and the schema coverage is 100% (vacuous). The baseline for 0 params is 4. The description adds context about the example invocation and return value, but since there are no input parameters to explain, the score aligns with the baseline.

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?

Description clearly states 'List all available demonstration workflows' with a specific verb and resource. It further distinguishes itself from siblings by mentioning 'multi-MCP orchestration capabilities', which separates it from list_available_skills, list_sessions, and list_mcp_workflow_templates.

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

Usage Guidelines4/5

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

The description provides clear context: it lists executable demos that showcase orchestration. It implies usage for discovering available demos, but does not explicitly say when to use it versus run_demo or when not to use it. Hence, clear context but no explicit exclusions or alternatives.

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

list_mcp_workflow_templatesA

List all available multi-MCP workflow templates.

Returns a summary of pre-built workflows with their descriptions, required MCPs, cost estimates, and time estimates.

Returns: JSON array of available workflow templates

Example: # List all templates list_mcp_workflow_templates()

# Returns: 7 templates (auth-security-review, performance-debug, etc.)
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the return type (JSON array), the key fields included (descriptions, required MCPs, cost estimates, time estimates), and provides an example with a count. It does not mention side effects or permissions, but for a read-only list operation this is reasonable.

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 well-structured and front-loaded with the core statement, followed by concise details about the return value, a formal 'Returns' line, and an illustrative example. No unnecessary words; every sentence contributes meaning.

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?

For a zero-parameter list operation, the description is sufficiently complete. It describes the return content and structure, and the output schema exists (as noted in context signals), so the description need not explain return values in depth. Minor gaps remain (e.g., pagination, performance), but these are not critical for a simple list tool.

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 zero parameters, so parameter semantics are not applicable. The baseline score of 4 applies. The description appropriately adds value by describing what the returned data contains, which is more useful than parameter explanations.

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 opens with a clear, specific verb and resource: 'List all available multi-MCP workflow templates.' The phrase 'all available' explicitly distinguishes this from the sibling tool 'get_mcp_workflow_template' which retrieves a single template. The purpose is unambiguous.

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

Usage Guidelines3/5

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

The description implies usage context by stating it lists all templates, and the sibling list includes a singular getter, but it does not explicitly say 'When you need a specific template, use get_mcp_workflow_template.' There are no explicit alternatives or exclusions, so the guidance is implied rather than explicit.

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

list_sessionsA

List all available sessions in the global directory. (Note: Does not list local project sessions)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description carries the transparency burden. It discloses the key behavioral nuance (global vs local) but does not mention return format, permissions, or side effects. For a simple list operation, this is adequate but not rich.

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 two short sentences, front-loaded with the main action, and every word adds value. No redundancy or filler.

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

Completeness5/5

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

Given zero parameters, a clear scope note, and an output schema, the description covers everything necessary for an agent to select and invoke the tool correctly.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description adds no parameter details, but none are needed since the schema is empty.

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 'List all available sessions in the global directory' with a specific verb and resource. The note differentiating from local project sessions further clarifies the scope and distinguishes it from potential alternatives.

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

Usage Guidelines4/5

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

It gives clear context by specifying 'global directory' and explicitly notes what it does NOT list (local project sessions). While it doesn't name alternative tools, the exclusion helps the agent understand when to use this tool.

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

merge_sessionsA

Merge multiple sessions into a single target session (v0.5.0).

Enables teams to combine session insights from multiple developers, resolving conflicts and tracking attribution.

Args: session_ids: List of session IDs to merge (e.g., ["dev1-session", "dev2-session"]) target_session_id: ID for the merged session (e.g., "team-session") conflict_strategy: How to resolve conflicts: - "latest" (default): Use most recent timestamp - "oldest": Use oldest timestamp - "all": Keep all variants (creates numbered versions) - "manual": Return conflicts for manual resolution project_root: Optional project root for local sessions

Returns: Formatted merge result with statistics and conflicts

Examples: # Merge two developer sessions merge_sessions( session_ids=["alice-frontend", "bob-backend"], target_session_id="sprint-23", conflict_strategy="latest" )

# Merge with manual conflict resolution
merge_sessions(
    session_ids=["team-a", "team-b"],
    target_session_id="combined",
    conflict_strategy="manual"
)

# Keep all decision variants
merge_sessions(
    session_ids=["experiment-1", "experiment-2"],
    target_session_id="final",
    conflict_strategy="all"
)
ParametersJSON Schema
NameRequiredDescriptionDefault
session_idsYes
project_rootNo
conflict_strategyNolatest
target_session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses conflict resolution strategies, return statistics, and attribution tracking, but does not specify whether source sessions are modified or what happens if the target session already exists. This missing side-effect information is important for a merge operation.

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 Args, Returns, and Examples, and it front-loads the core purpose. It is slightly longer than necessary due to the version tag and multiple examples, but every section adds practical value.

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

Completeness5/5

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

The description is complete for a tool with four parameters and an output schema: it explains behavior, parameter options, return value, and provides three usage examples. The output schema is already present, so the Returns line sufficiently summarizes output.

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

Parameters5/5

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

Schema coverage is 0%, but the description fully explains all four parameters, including the meaning of each conflict_strategy option and optional project_root. Examples further clarify parameter usage, making the description the primary source of semantic information.

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 merges multiple sessions into a single target session, with a specific verb and resource. This distinguishes it from siblings like compare_sessions and export_session_summary by focusing on the merging action.

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

Usage Guidelines4/5

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

The description provides clear context: teams combining session insights from multiple developers and resolving conflicts. It does not explicitly list alternatives or when not to use it, but the intended use case is evident from the examples and conflict strategy explanation.

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

query_specific_standardA

Query a specific section of the rulebook directly by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNodefault
project_rootNo
section_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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. The word 'Query' strongly implies a read-only operation, which is helpful, but the description does not elaborate on potential side effects, required permissions, or the nature of the returned data. Since it is a simple query tool, this minimal transparency is acceptable but not rich.

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, focused sentence that immediately conveys the core functionality. It is front-loaded with the action and resource, and contains no filler or repetition. Every word adds value.

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

Completeness3/5

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

For a simple query tool with an output schema, the description provides a basic understanding. However, it lacks guidance on when to prefer this tool over siblings and omits any mention of the optional session_id and project_root parameters. This makes the description minimally complete but not fully self-sufficient.

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

Parameters2/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 for all parameters. It implicitly explains 'section_name' via 'directly by name', but completely ignores 'session_id' and 'project_root'. Given that there are three parameters and only one is touched, the description does not sufficiently bridge the gap left by the schema.

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 action ('Query'), the target resource ('specific section of the rulebook'), and the method ('directly by name'). This distinguishes it from sibling tools that suggest broader guidance or validation, such as get_engineering_guidance or validate_against_standards.

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

Usage Guidelines4/5

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

The phrase 'directly by name' provides clear context: use this tool when you know the exact section name and want to retrieve that section. However, it does not explicitly mention when not to use it or name alternative tools, so it stops short of full exclusionary guidance.

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

record_consultationA

Record a consultation in session history.

After Claude analyzes a query using persona content, record the consultation for session analytics and history.

Args: query: The original query personas_used: List of persona names that were consulted session_id: Session identifier project_root: Optional project root synthesis: Optional synthesis/recommendation from Claude

Returns: Confirmation with consultation ID

Example: # After Claude analyzes using persona content: record_consultation( query="Should we migrate to microservices?", personas_used=["pragmatic-architect", "site-reliability-engineer"], synthesis="[Claude's full analysis and recommendation]" )

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
synthesisNo
session_idNodefault
project_rootNo
personas_usedYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states the primary effect ('record the consultation') and the return value ('Confirmation with consultation ID'), but doesn't disclose prerequisites, failure modes, or whether the operation is reversible. For a logging tool, this is adequate but not deeply transparent.

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 well-structured: a one-line summary, a contextual sentence, an Args block, a Returns line, and an Example. Every section serves a purpose, and the content is front-loaded with the main verb and object.

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

Completeness5/5

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

Given the tool's simplicity (5 params, 2 required), the description covers purpose, usage trigger, all parameter semantics, return value, and an example. No output schema is provided in the context, but the Returns line clarifies the output. This is complete for an MCP logging tool.

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

Parameters5/5

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

The schema provides no parameter descriptions (0% coverage), but the description's Args section explains each parameter: query (original query), personas_used (list of consulted personas), session_id, project_root (optional), and synthesis (optional recommendation). This fully compensates for the schema gap and adds meaning beyond the bare types.

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?

Description opens with 'Record a consultation in session history,' a specific verb+resource statement. It adds context that it's used after Claude analyzes a query with persona content, helping distinguish from the sibling record_decision. However, it doesn't explicitly contrast with alternative tools.

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

Usage Guidelines4/5

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

The description states a clear trigger: 'After Claude analyzes a query using persona content, record the consultation for session analytics and history.' This provides clear when-to-use context, but it does not mention when not to use or name alternative tools like record_decision.

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

record_decisionA

Record an architectural or technical decision for this session.

Args: category: Type of decision ("architecture", "pattern", "constraint", "standard") description: Brief description of the decision rationale: Why this decision was made session_id: Session identifier constraint: Optional constraint to add to active constraints pattern: Optional pattern to add to agreed patterns project_root: Absolute path to the project root

Returns: Confirmation message with decision ID

ParametersJSON Schema
NameRequiredDescriptionDefault
patternNo
categoryYes
rationaleYes
constraintNo
session_idNodefault
descriptionYes
project_rootNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It explains that optional constraint and pattern parameters modify active constraints and agreed patterns, and that the tool returns a confirmation with a decision ID. It does not mention persistence or permissions, but enough behavior is disclosed for a record operation.

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 concise and well-structured, with a clear one-liner followed by an Args list and Returns statement. Every parameter earns its place, and the layout is easy to scan. No unnecessary fluff.

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

Completeness5/5

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

For a 7-parameter tool with no annotations, the description is complete: it covers all parameters, describes the return value, and notes optional side effects. The output schema exists, so return details are not over-explained, but the description still provides the key info. It adequately fulfills its contextual role.

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

Parameters5/5

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

Schema coverage is 0% (no descriptions in the schema), yet the description compensates fully by explaining every parameter: category with examples, description, rationale, session_id, optional constraint/pattern with their effects, and project_root. This is a comprehensive mapping that adds significant meaning beyond the raw schema.

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 opens with 'Record an architectural or technical decision for this session,' which clearly specifies the verb (record), resource (decision), and scope (for this session). It distinguishes itself from sibling tools like record_consultation by focusing on decisions rather than consultations.

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: use this when you need to log a decision. It provides context about optional side effects (adding constraints/patterns) but does not explicitly state when to prefer this over alternative tools, nor does it mention any exclusions or prerequisites.

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

run_demoA

Execute a demonstration workflow that showcases multi-MCP orchestration.

Runs a self-contained demo that combines Sensei + external MCPs (Context7, Tavily, Playwright) in realistic workflows. Perfect for:

  • Testing multi-MCP coordination

  • Generating example documentation

  • Demonstrating Sensei capabilities

  • Training and onboarding

Args: demo_type: Type of demo to run Available demos: - "auth-review": Authentication security review (Sensei + Context7 + Tavily + Playwright) - "performance-debug": Performance debugging (Sensei + Playwright + Context7) - "cost-analysis": Cloud cost optimization (Sensei + Tavily) - "api-review": API design review (Sensei + Context7 + Tavily)

custom_params: Optional custom parameters to override defaults
    Example for auth-review: {
        "user_query": "Review FastAPI authentication",
        "app_url": "https://myapp.com/login",
        "framework": "FastAPI"
    }

output_format: Output format ("markdown", "json", "text")

Returns: Comprehensive demo execution report showing: - Workflow steps and MCP coordination - Example findings from multi-MCP synthesis - Expected output structure - How to run the demo yourself

Examples: # Run auth security review demo with defaults run_demo(demo_type="auth-review")

# Run with custom parameters
run_demo(
    demo_type="auth-review",
    custom_params={
        "user_query": "Review OAuth implementation",
        "framework": "Django"
    }
)

# Get JSON output
run_demo(demo_type="performance-debug", output_format="json")
ParametersJSON Schema
NameRequiredDescriptionDefault
demo_typeYes
custom_paramsNo
output_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of disclosing behavior. It states that the tool runs a self-contained demo, combines external MCPs, and returns a comprehensive report including workflow steps and expected output structure. It does not explicitly mention side effects or that no real changes occur, but 'self-contained demo' strongly implies a safe, simulated execution.

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 well-structured with clear sections (Args, Returns, Examples) and uses bullet lists to enumerate options. Every sentence adds value, and the length is appropriate for the tool's complexity. It is front-loaded with the core purpose and then provides detailed parameter guidance.

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

Completeness5/5

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

Given the nested custom_params object and multiple demo types, the description is complete enough for an agent to select and invoke correctly. It covers all parameters, provides concrete examples, explains the return value, and even tells the user how to run the demo themselves. No critical gaps remain.

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

Parameters5/5

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

The description provides rich detail beyond the schema: it lists all available demo types, gives an example of custom_params structure, and shows usage examples for output_format. This fully compensates for the 0% schema description coverage, making parameter usage unmistakable.

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 uses a specific verb ('Execute a demonstration workflow') and identifies the specific resource ('showcases multi-MCP orchestration'). It clearly distinguishes itself from sibling tools like list_demos or get_mcp_workflow_template by focusing on actually running a demo rather than listing or providing templates.

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

Usage Guidelines4/5

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

The description provides clear use cases ('Testing multi-MCP coordination', 'Generating example documentation', etc.), which helps an agent decide when to invoke it. However, it does not explicitly mention alternatives or when not to use this tool, so it falls short of fully explicit guidance.

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

suggest_mcps_for_queryA

Suggest which MCP servers to use for a given query.

Analyzes the query and recommends which MCP servers (Context7, Tavily, Playwright, etc.) would be most helpful, along with pre-built workflow templates if available.

Args: query: The user's query context: Detected query context (default: "GENERAL") Options: SECURITY, COST, CRISIS, ARCHITECTURAL, TECHNICAL, etc. user_mcps: Optional list of MCPs to filter suggestions (e.g., ["context7", "tavily"])

Returns: JSON with suggested MCPs, rationale, matching workflows, and cost/time estimates

Example: # Get MCP suggestions suggest_mcps_for_query( query="Review authentication for security issues", context="SECURITY" )

# Returns: sensei + context7 (OWASP docs) + tavily (CVEs) + playwright (live inspection)
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
contextNoGENERAL
user_mcpsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden for behavioral disclosure. It adequately reveals that the tool analyzes the query and returns JSON with suggestions, rationale, workflows, and cost/time estimates. While it doesn't explicitly state 'does not modify state,' the analytical nature and return specification make the behavior clear.

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 well-structured with clear sections: summary line, Args, Returns, and Example. Every sentence contributes meaningful information, and the example is illustrative without being verbose. This is appropriately sized for a tool with three parameters.

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

Completeness5/5

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

Despite the absence of annotations, the description is comprehensive. It covers the tool's purpose, parameter semantics, return value structure, and a realistic use case. The presence of an output schema reduces the need to detail return values, but the description still provides a useful example of what the output looks like.

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

Parameters5/5

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

The schema has 0% description coverage, but the description's Args section fully compensates by adding meaning beyond the raw schema. It explains the context parameter with options (SECURITY, COST, etc.), describes user_mcps as a filter, and provides a complete example with actual parameter 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 uses a specific verb ('suggest') and resource ('MCP servers'), clearly distinguishing this from sibling tools like get_mcp_workflow_template or consult_skill. It states the exact function: analyzing a query and recommending appropriate MCP servers.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool ('for a given query') and includes a concrete example for a security review scenario. However, it doesn't explicitly mention when not to use it or name alternative tools, so it falls short of full usage-guideline coverage.

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

suggest_personas_for_queryA

Suggest relevant personas for a given query using intelligent selection.

Uses keyword matching, context detection, and relevance scoring to recommend which personas would be most helpful for the query.

MCP Design Philosophy: This tool helps the LLM discover which personas to consult, but doesn't perform analysis itself. The LLM uses the suggestions to call get_persona_content() for each recommended persona.

Args: query: The user's question or scenario max_suggestions: Maximum number of personas to suggest (default: 5) context_hint: Optional context hint to improve suggestions (e.g., "crisis", "security", "architectural")

Returns: JSON list of suggested personas with relevance scores and rationale

Example: # Get suggestions for a query suggestions = suggest_personas_for_query( query="How should we handle user authentication?", max_suggestions=3 )

# Returns JSON with suggested personas and why they're relevant
# LLM then calls get_persona_content() for each suggestion
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
context_hintNo
max_suggestionsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden. It discloses that the tool uses keyword matching, context detection, and relevance scoring, does not perform analysis itself, and returns a JSON list with scores and rationale. This is reasonable transparency, though it doesn't explicitly state read-only status or edge-case behaviors.

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 somewhat long but well-structured with sections for purpose, philosophy, Args, Returns, and Example. Each sentence adds value; the example is pragmatic. It earns a slight deduction for redundancy (e.g., 'JSON list of suggested personas with relevance scores and rationale' appears in both Returns and Example).

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

Completeness5/5

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

For a suggestion tool with an output schema, the description covers all needed aspects: purpose, usage workflow, parameter semantics, return format, and a concrete example. It is complete enough for an agent to select and invoke the tool correctly.

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

Parameters5/5

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

Despite the input schema lacking descriptions (0% coverage), the description includes an 'Args' section that explains each parameter: query, max_suggestions (with default), and context_hint (with example). This fully compensates for the schema gaps, making the parameters clear.

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 'Suggest relevant personas for a given query', a specific verb+resource that distinguishes this from sibling tools like get_persona_content (which retrieves content) and suggest_mcps_for_query (which suggests MCPs). The purpose is unmistakable.

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

Usage Guidelines4/5

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

The 'MCP Design Philosophy' explains that this tool is for discovering which personas to consult and that the LLM should then call get_persona_content() for each recommendation. This gives clear workflow context, though it doesn't explicitly state when NOT to use it or contrast with alternatives.

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

validate_against_standardsB

Validate code or design against Sensei engineering standards.

Args: code_snippet: Code to validate (optional) design_description: Design/architecture to validate (optional) focus_areas: Specific areas to check session_id: Session identifier project_root: Absolute path to the project root

Returns: Structured validation report

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNodefault
focus_areasNo
code_snippetNo
project_rootNo
design_descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It states it 'Returns: Structured validation report,' but does not disclose any side effects, read-only nature, required permissions, or how validation is scoped. This lack of behavioral transparency is a significant gap.

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 well-structured and compact: a one-line purpose, a clean Args list, and a Returns line. Every element adds value, and the format is easily scannable. There is no fluff or redundant repetition of the schema.

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

Completeness2/5

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

Despite having an output schema, the description remains incomplete for a tool with five parameters and no annotations. It does not explain the validation criteria, how to interpret the report, or the role of session_id. Given the abundance of similar sibling tools, richer context is needed for proper invocation.

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?

With schema description coverage at 0%, the description compensates by providing human-readable explanations for each parameter (e.g., 'Code to validate (optional)', 'Specific areas to check'). This adds meaning beyond the bare parameter names, though it could be enriched with more detail about how parameters interact or expected formats.

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 function: 'Validate code or design against Sensei engineering standards.' It specifies the resource (code/design) and the action (validate), making the purpose immediately understandable. However, it does not explicitly distinguish itself from similar sibling tools like check_consistency or query_specific_standard, so it falls short of a perfect score.

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 does not mention prerequisites, exclusions, or scenarios that would favor another tool. The only context is the general 'validate code or design,' which leaves the agent without clear direction on selection.

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. 25 tool updatesv0.9.0
    • First observedanalyze_changes
    • First observedcheck_consistency
    • First observedcompare_sessions
    • First observedconsult_skill
    • First observedexport_consultation
    • First observedexport_session_summary
    • First observedget_engineering_context
    • First observedget_engineering_guidance
    • First observedget_mcp_workflow_template
    • First observedget_persona_content
    • First observedget_session_context
    • First observedget_session_insights
    • First observedget_session_summary
    • First observedlist_available_skills
    • First observedlist_demos
    • First observedlist_mcp_workflow_templates
    • First observedlist_sessions
    • First observedmerge_sessions
    • First observedquery_specific_standard
    • First observedrecord_consultation
    • First observedrecord_decision
    • First observedrun_demo
    • First observedsuggest_mcps_for_query
    • First observedsuggest_personas_for_query
    • First observedvalidate_against_standards

TDQS

A3.5/5.0

Scored across 25 tools

Disambiguation2/5

Multiple tools overlap in purpose, particularly the deprecated get_engineering_guidance vs the new granular tools (suggest_personas_for_query, get_persona_content, record_consultation), making it unclear which path to use. Similarly, get_session_summary and export_session_summary both return session summaries, and get_session_context overlaps with session summary functions, creating ambiguity for agents.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case (e.g., get_engineering_guidance, record_decision, list_available_skills). The verbs are clear and varied appropriately, making the naming predictable and easy to learn.

Tool Count3/5

With 25 tools, this server is at the high end of acceptable scope. While most tools serve a distinct resource, several are redundant or could be consolidated (e.g., list_mcp_workflow_templates and list_demos, or get_session_summary and export_session_summary). The count feels heavy, especially given the transitional deprecations.

Completeness4/5

The toolset covers the core domain of engineering guidance, sessions, personas, standards, and MCP workflows comprehensively. However, there are minor gaps such as no delete/update operations for sessions or consultations, and the deprecated tools add confusion rather than a true missing capability. Overall, the surface is nearly complete for the stated purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Transforms Claude into a production-grade pair programmer by orchestrating best-in-class APIs (Morph, Chroma, DSPy) for iterative code evolution to 95%+ quality, semantic codebase search, package discovery across 3,000+ libraries, and pattern learning.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    A self-evolving engineering playbook system that provides AI assistants with structured access to development methodologies, workflows, and best practices. Enables generation of work plans, progress tracking, and continuous process improvement through AI-proposed playbook updates.
    13
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables Claude to consult over 17 AI platforms and 800,000+ models to provide alternative perspectives, code reviews, and diverse feedback. It features a unique personality system and supports multi-AI group discussions and debates directly within the chat interface.
    44
    MIT