Skip to main content
Glama

Exarp

MCP Server for Project Management Automation

PyPI version License: MIT

Install

🚨 For Development: This project uses uv for all package management. See .cursorrules for details.

Using uv (Recommended - Faster):

# For end users installing from PyPI
uv pip install exarp

# For developers working on this repo
uv sync

Using pip (Fallback - Not recommended for development):

pip install exarp

Related MCP server: Pipeline Assistant MCP

Quick Start

# Run the MCP server
exarp

# Or use aliases
pma
python -m project_management_automation.server

MCP Client Configuration

Add to your MCP client config (Cursor, Claude Desktop, VS Code):

{
  "mcpServers": {
    "exarp": {
      "command": "/path/to/project-management-automation/exarp-uvx-wrapper.sh",
      "args": ["--mcp"]
    }
  }
}

Recommended: Use exarp-uvx-wrapper.sh which automatically detects uvx location across platforms (Ubuntu, macOS Intel/Apple Silicon).

Alternative: If uvx is in your PATH, use directly:

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

See UVX Location Guide for detailed platform-specific instructions.

Development

Keeping MCP Features in Sync

This project supports both FastMCP and stdio server interfaces. When adding tools, resources, or prompts, you must register them in both systems.

πŸ“– See MCP Sync Guide for complete instructions.

Quick check:

uv run python scripts/verify_mcp_sync.py

Features

πŸ₯ Project Health

Tool

Description

server_status

Server status, version, tools count

project_scorecard

Comprehensive health metrics (codebase, tests, tasks, docs, security)

project_overview

One-page summary (text, markdown, HTML, slides)

πŸ“š Documentation

Tool

Description

check_documentation_health

Analyze docs, find broken links, validate formatting

add_external_tool_hints

Add Context7 hints to documentation

βœ… Task Management

Tool

Description

analyze_todo2_alignment

Check task alignment with PROJECT_GOALS.md

detect_duplicate_tasks

Find and merge duplicate tasks

consolidate_tags

Standardize task tags

task_hierarchy_analyzer

Recommend task hierarchies

batch_approve_tasks

Batch approve tasks without clarification needed

sync_todo_tasks

Sync between TODO table and Todo2

πŸ”’ Security

Tool

Description

scan_dependency_security

Scan Python/Rust/npm for vulnerabilities

πŸ€– Automation

Tool

Description

run_daily_automation

Daily maintenance (docs, alignment, duplicates)

run_nightly_task_automation

Execute background tasks in parallel

sprint_automation

Full sprint with subtask extraction

find_automation_opportunities

Discover automation candidates

πŸ”§ CI/CD & Git

Tool

Description

validate_ci_cd_workflow

Validate GitHub Actions workflows

setup_git_hooks

Configure pre-commit/pre-push hooks

setup_pattern_triggers

File/git/task pattern automation

check_working_copy_health

Git status across agents

πŸ§ͺ Testing

Tool

Description

run_tests

Execute pytest/unittest/ctest

analyze_test_coverage

Coverage reports and gap analysis

ZSH Plugin

For shell integration with context-aware project health:

# Add to ~/.zshrc
source /path/to/exarp.plugin.zsh

# Commands
xl   # Quick context (no Python needed)
xc   # Full context with score
xs   # Project scorecard
xo   # Project overview
xt   # List pending tasks
xp   # Scan for projects
motd # Daily wisdom

See shell/exarp.plugin.zsh for full documentation.

Daily Wisdom

Exarp includes optional daily wisdom quotes based on project health:

# Configure source
export EXARP_WISDOM_SOURCE=stoic  # or: bofh, tao, bible, murphy, shakespeare, sefaria

# Disable
export EXARP_WISDOM_DISABLED=1

Man Pages

man exarp       # MCP server documentation
man exarp-zsh   # ZSH plugin documentation

Requirements

  • Python 3.9+

  • FastMCP 2.0+

  • Pydantic 2.0+

License

MIT License - see LICENSE

Attributions

This project includes features inspired by third-party projects:

All implementations are original code. No third-party code was copied.

Available Tools

27 tools
add_external_tool_hintsD

[HINT: Tool hints. Files scanned, modified, hints added.]

Inputs: dry_run, output_path, min_file_size. Returns: result

analyze_alignmentA

[HINT: Alignment analysis. action=todo2|prd. Unified alignment analysis tool.]

Unified alignment analysis tool consolidating Todo2 and PRD alignment.

Actions:

  • action="todo2": Analyze task alignment with project goals, find misaligned tasks

  • action="prd": Analyze PRD alignment with persona mapping and advisor assignments

πŸ“Š Output: Alignment scores, misaligned items, recommendations πŸ”§ Side Effects: Creates tasks/reports based on action ⏱️ Typical Runtime: <5 seconds

Inputs: action, create_followup_tasks, output_path. Returns: result

automationD

Inputs: action, tasks, include_slow, max_tasks_per_host, +12 more. Returns: result

check_attributionA

[HINT: Attribution compliance check. Verify proper attribution for all third-party components.]

Checks attribution compliance across the codebase:

  • Missing attribution in file headers

  • Missing entries in ATTRIBUTIONS.md

  • Uncredited third-party references

  • Dependency license compliance

πŸ“Š Output: Attribution score (0-100), compliance status, issues found πŸ”§ Side Effects: Creates compliance report and optional Todo2 tasks ⏱️ Typical Runtime: 1-3 seconds

Inputs: output_path, create_tasks. Returns: result

contextA

[HINT: Context management. action=summarize|budget|batch. Unified context operations.]

Unified context management tool consolidating summarization, budgeting, and batch operations.

πŸ“Š Output: Context operation results (summary, budget analysis, or batch summaries) πŸ”§ Side Effects: None ⏱️ Typical Runtime: <10ms

Inputs: action, data, level, tool_type, +5 more. Returns: result

estimationA

[HINT: Estimation. action=estimate|analyze|stats. Unified task duration estimation tool.]

Unified task duration estimation tool consolidating estimation, accuracy analysis, and statistics.

Actions:

  • action="estimate": Generate MLX-enhanced time estimate for a task

  • action="analyze": Analyze estimation accuracy from historical data

  • action="stats": Get statistical summary of historical task durations

πŸ“Š Output: Estimation results based on action πŸ”§ MLX Enhancement: When use_mlx=True, combines statistical methods with MLX semantic analysis for 30-40% better accuracy ⏱️ Typical Runtime: <1 second (estimate), <2 seconds (analyze), <1 second (stats)

Inputs: action, name, details, tags, +6 more. Returns: result

generate_configA

[HINT: Config generation. action=rules|ignore|simplify. Creates IDE config files.]

Unified config generation:

  • action="rules": Generate .cursor/rules/*.mdc files

  • action="ignore": Generate .cursorignore/.cursorindexingignore

  • action="simplify": Simplify existing rule files

πŸ“Š Output: Generated files, changes made πŸ”§ Side Effects: Creates/updates config files (unless dry_run=True)

Inputs: action, rules, overwrite, analyze_only, +5 more. Returns: result

git_toolsC

[HINT: Git tools. action=commits|branches|tasks|diff|graph|merge|set_branch. Unified git-inspired tools.]

Unified git-inspired task management tools.

Actions:

  • action="commits": Get commit history (task_id or branch required)

  • action="branches": List all branches with statistics

  • action="tasks": Get all tasks in a branch

  • action="diff": Compare task versions

  • action="graph": Generate commit graph visualization

  • action="merge": Merge tasks from one branch to another

  • action="set_branch": Assign task to a branch

Inputs: action, task_id, branch, limit, +12 more. Returns: result

healthB

[HINT: Health check. action=server|git|docs|dod|cicd. Status and health metrics.]

Unified health check:

  • action="server": Server operational status, version

  • action="git": Working copy health, uncommitted changes, sync status

  • action="docs": Documentation health score, broken links

  • action="dod": Definition of done validation for task completion

  • action="cicd": CI/CD workflow validation, runner config

πŸ“Š Output: Health status and metrics πŸ”§ Side Effects: Creates tasks (docs action with create_tasks=True)

Inputs: action, agent_name, check_remote, output_path, +6 more. Returns: result

infer_session_modeB

[HINT: Session mode inference. Returns AGENT/ASK/MANUAL with confidence.]

Infer current session mode from tool patterns.

Inputs: force_recompute. Returns: object

lintB

[HINT: Linting tool. action=run|analyze. Run linter or analyze problems.]

Unified linting:

  • action="run": Execute linter (ruff/flake8), optionally analyze results

  • action="analyze": Analyze problems JSON with resolution hints

πŸ“Š Output: Linter results or problem analysis πŸ”§ Side Effects: May auto-fix issues (with fix=true)

Inputs: action, path, linter, fix, +6 more. Returns: result

memoryA

[HINT: Memory tool. action=save|recall|search. Persist and retrieve AI discoveries.]

Unified memory management:

  • action="save": Store insight with title, content, category

  • action="recall": Get memories for a task_id

  • action="search": Find memories by query text

Categories: debug, research, architecture, preference, insight

πŸ“Š Output: Memory operation results πŸ”§ Side Effects: Creates/retrieves memory files

Inputs: action, title, content, category, +5 more. Returns: result

memory_maintA

[HINT: Memory maintenance. action=health|gc|prune|consolidate|dream. Lifecycle management.]

Unified memory maintenance:

  • action="health": Memory system health metrics and recommendations

  • action="gc": Garbage collect stale/orphaned memories

  • action="prune": Remove low-value memories based on scoring

  • action="consolidate": Merge similar/duplicate memories

  • action="dream": Reflect on memories with wisdom advisors

πŸ“Š Output: Maintenance results with recommendations πŸ”§ Side Effects: Modifies memories (gc/prune/consolidate with dry_run=False)

Inputs: action, max_age_days, delete_orphaned, delete_duplicates, +11 more. Returns: result

mlxC

[HINT: MLX. action=status|hardware|models|generate. Unified MLX tool.]

Unified MLX tool for Apple Silicon GPU acceleration.

Actions:

  • action="status": Check if MLX is available

  • action="hardware": Get hardware info and recommended settings

  • action="models": List recommended MLX models

  • action="generate": Generate text with MLX

Inputs: action, prompt, model, max_tokens, +2 more. Returns: result

ollamaC

[HINT: Ollama. action=status|models|generate|pull|hardware|docs|quality|summary. Unified Ollama tool.]

Unified Ollama tool consolidating integration and enhanced tools.

Actions:

  • action="status": Check if Ollama server is running

  • action="models": List available models

  • action="generate": Generate text with Ollama

  • action="pull": Download/pull a model

  • action="hardware": Get hardware info and recommended settings

  • action="docs": Generate code documentation

  • action="quality": Analyze code quality

  • action="summary": Enhance context summary

Inputs: action, host, prompt, model, +11 more. Returns: result

prompt_trackingA

[HINT: Prompt tracking. action=log|analyze. Track and analyze prompts.]

Unified prompt tracking:

  • action="log": Log a prompt iteration (requires prompt parameter)

  • action="analyze": Analyze prompt patterns over time

πŸ“Š Output: Log confirmation or iteration statistics πŸ”§ Side Effects: Writes to .cursor/prompt_history/ (log action)

Inputs: action, prompt, task_id, mode, +3 more. Returns: result

recommendA

[HINT: Recommendations. action=model|workflow|advisor. Unified recommendation system.]

Unified recommendation tool consolidating model selection, workflow mode suggestions, and advisor consultations.

Actions:

  • action="model": Recommend optimal AI model based on task

  • action="workflow": Suggest AGENT vs ASK mode based on task complexity

  • action="advisor": Get wisdom from trusted advisors

πŸ“Š Output: Model recommendations, mode suggestions, or advisor wisdom πŸ”§ Side Effects: May log consultations (advisor action) ⏱️ Typical Runtime: <1 second

Inputs: action, task_description, task_type, optimize_for, +9 more. Returns: result

reportB

[HINT: Report generation. action=overview|scorecard|briefing|prd. Project reports.]

Unified report generation:

  • action="overview": One-page project overview for stakeholders

  • action="scorecard": Health metrics scorecard with component scores

  • action="briefing": Advisor wisdom summary for lowest-scoring areas

  • action="prd": Product requirements document from codebase

πŸ“Š Output: Generated report in specified format πŸ”§ Side Effects: Creates file (if output_path specified)

Inputs: action, output_format, output_path, include_recommendations, +10 more. Returns: result

securityB

[HINT: Security. action=scan|alerts|report. Vulnerabilities, remediation.]

Unified security analysis:

  • action="scan": Local pip-audit dependency scan

  • action="alerts": Fetch GitHub Dependabot alerts

  • action="report": Combined security report (Dependabot + pip-audit)

πŸ“Š Output: Vulnerabilities by severity, remediation recommendations πŸ”§ Side Effects: None (read-only)

Inputs: action, repo, languages, config_path, +3 more. Returns: result

sessionB

[HINT: Session. action=prime|handoff|prompts|assignee. Unified session management tools.]

Unified session management tool consolidating auto-primer, handoff, prompt discovery, and task assignee.

Actions:

  • action="prime": Auto-prime AI context at session start

  • action="handoff": End/resume sessions for multi-device coordination

  • action="prompts": Find relevant prompts by mode/persona/category/keywords

  • action="assignee": Manage task assignments across agents/humans/hosts

Inputs: action, include_hints, include_tasks, override_mode, +21 more. Returns: result

setup_hooksB

[HINT: Hooks setup. action=git|patterns. Install automation hooks.]

Unified hooks setup:

  • action="git": Install git hooks (pre-commit, pre-push, etc.)

  • action="patterns": Install pattern triggers for file/task automation

πŸ“Š Output: Installation status, hooks configured πŸ”§ Side Effects: Installs hooks (unless dry_run=True)

Inputs: action, hooks, patterns, config_path, +2 more. Returns: result

task_analysisA

[HINT: Task analysis. action=duplicates|tags|hierarchy|dependencies|parallelization. Task quality and structure.]

Unified task analysis:

  • action="duplicates": Find duplicate tasks by similarity

  • action="tags": Consolidate/cleanup task tags

  • action="hierarchy": Analyze task structure and groupings

  • action="dependencies": Analyze dependency chains, detect cycles, find critical paths

  • action="parallelization": Identify tasks that can run in parallel

πŸ“Š Output: Analysis results with recommendations πŸ”§ Side Effects: Modifies tasks (duplicates with auto_fix, tags without dry_run)

Inputs: action, similarity_threshold, auto_fix, dry_run, +5 more. Returns: result

task_discoveryB

[HINT: Task discovery. action=comments|markdown|orphans|all. Find tasks from various sources.]

Discovers tasks from:

  • action="comments": TODO/FIXME in code files

  • action="markdown": Task lists in *.md files

  • action="orphans": Orphaned Todo2 tasks (no dependencies)

  • action="all": All sources combined

πŸ“Š Output: Discovered tasks with locations πŸ”§ Side Effects: Can create Todo2 tasks (create_tasks=true)

Inputs: action, file_patterns, include_fixme, doc_path, +2 more. Returns: result

task_workflowA

[HINT: Task workflow. action=sync|approve|clarify|clarity|cleanup. Manage task lifecycle.]

Unified task workflow tool consolidating sync, approval, clarification, clarity improvement, and stale cleanup.

Actions:

  • action="sync": Sync TODO markdown tables ↔ Todo2

  • action="approve": Bulk approve/move tasks by status

  • action="clarify": Manage task clarifications (sub_action: list|resolve|batch)

  • action="clarity": Improve task clarity (adds estimates, renames, removes dependencies)

  • action="cleanup": Move stale In Progress tasks back to Todo

πŸ“Š Output: Workflow operation results πŸ”§ Side Effects: Modifies task states ⏱️ Typical Runtime: <1 second (most actions)

Inputs: action, dry_run, status, new_status, +13 more. Returns: result

testingA

[HINT: Testing tool. action=run|coverage|suggest|validate. Execute tests, analyze coverage, suggest test cases, or validate test structure.]

Unified testing:

  • action="run": Execute test suite (pytest/unittest/ctest)

  • action="coverage": Analyze test coverage with threshold

  • action="suggest": Suggest test cases based on code analysis

  • action="validate": Validate test organization and patterns

πŸ“Š Output: Test results, coverage analysis, test suggestions, or validation report πŸ”§ Side Effects: May generate coverage reports, suggestion files, or validation reports

Inputs: action, test_path, test_framework, verbose, +8 more. Returns: result

tool_catalogA

[HINT: Tool catalog. action=list|help. Unified tool catalog and help.]

Unified tool catalog tool consolidating tool browsing and help operations.

πŸ“Š Output: Tool catalog or detailed tool documentation πŸ”§ Side Effects: None ⏱️ Typical Runtime: <1 second

Inputs: action, category, persona, include_examples, +1 more. Returns: result

workflow_modeA

[HINT: Workflow mode management. action=focus|suggest|stats. Unified workflow operations.]

Unified workflow mode management tool consolidating focus, suggestions, and usage statistics.

Actions:

  • action="focus": Manage workflow modes and tool groups

  • action="suggest": Get mode suggestions based on context/usage

  • action="stats": View tool usage analytics and patterns

πŸ“Š Output: Mode status, suggestions, or usage statistics πŸ”§ Side Effects: May update tool visibility and send notifications ⏱️ Typical Runtime: <100ms

Modes (focus action):

  • daily_checkin: Health + overview (9 tools, 82% reduction)

  • security_review: Security-focused (12 tools, 77% reduction)

  • task_management: Task tools only (10 tools, 81% reduction)

  • sprint_planning: Tasks + automation + PRD (15 tools, 71% reduction)

  • code_review: Testing + linting (10 tools, 81% reduction)

  • development: Balanced set (25 tools, 52% reduction) [default]

  • debugging: Memory + testing (17 tools, 67% reduction)

  • all: Full tool access (52 tools)

Inputs: action, mode, enable_group, disable_group, +4 more. Returns: result

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    C2.9/5.0

    Scored across 27 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose, from alignment analysis to task management to MLX integration. Descriptions are detailed and sets of actions are well-defined within each tool, minimizing overlap.

    Naming Consistency4/5

    Names are consistently lowercase with underscores, but some are verbs (e.g., 'lint', 'recommend') while others are nouns (e.g., 'memory', 'security'), creating slight inconsistency. However, the pattern is predictable and readable.

    Tool Count3/5

    27 tools is slightly heavy but within reason for a comprehensive development assistant. The 'unified' approach consolidates many actions per tool, justifying the count, though some tools like 'automation' lack description.

    Completeness4/5

    The tool surface covers a wide range: task management, testing, security, AI integration, memory, reporting, and more. Minor gaps like lack of direct code generation or explicit version control are offset by related tools like linting, testing, and git-inspired task management.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers