Skip to main content
Glama
nsatee

Code Guider MCP Server

by nsatee

Code Guider MCP Server

An AI-powered local Model Context Protocol (MCP) server that provides intelligent code guidance, workflow automation, and quality assurance for your development projects. Features hybrid storage with Drizzle ORM for fast CRUD operations and vector storage for semantic search, AI-driven insights, and Anubis-inspired role-based workflow execution. Optimized for Bun runtime with native SQLite for maximum performance.

Features

  • 🧠 AI-Powered Analysis: Intelligent code analysis with semantic understanding

  • πŸ” Hybrid Storage: Drizzle ORM for fast CRUD operations + vector storage for semantic search

  • 🏠 Multi-Project Support: Global and project-specific databases with automatic project detection

  • 🌍 Global + Local Mode: Global templates/workflows + project-specific customization

  • πŸ”„ Workflow Automation: Define and execute AI-enhanced code generation workflows

  • πŸ“ Template System: Reusable code templates with AI-powered suggestions

  • βœ… Quality Rules: Automated code quality checking with pattern recognition

  • 🎯 Context-Aware: Provides guidance based on file type and project context

  • πŸ”§ MCP Integration: Works with any MCP-compatible client

  • πŸš€ TypeScript: Full TypeScript support with type safety

  • πŸ” Similar Code Detection: Find similar code patterns across your codebase

  • πŸ“Š Complexity Analysis: AI-powered code complexity scoring

  • πŸ‘₯ Role-Based Execution: Anubis-inspired role system with Product Manager, Architect, Senior Developer, and Code Review roles

  • πŸ”„ Execution Tracking: Comprehensive workflow execution tracking with state management

  • 🎯 Context Preservation: Seamless role transitions with full context preservation

  • πŸ€– Multi-Agent Support: Optimized templates for Cursor, Copilot, RooCode, and KiloCode

  • ⏸️ Pause/Resume: Pause and resume workflow executions at any time

  • πŸ“ˆ Execution Metrics: Detailed metrics and performance tracking

  • ⚑ Performance: 3-10x faster operations with Drizzle ORM + Bun SQLite optimization

  • πŸš€ LibSQL Powered: Built with LibSQL for cross-platform compatibility and optimal performance

  • πŸ“¦ Zero Native Dependencies: Pure JavaScript/TypeScript with no native compilation required

  • πŸ€– AI Migration: Natural language migration commands that intelligently transform and migrate data

  • πŸ”„ Smart Transformation: AI-powered data transformation with validation and rollback capabilities

  • πŸ›‘οΈ Safe Migration: Built-in backup, dry-run, and validation features for safe data migration

Related MCP server: My First MCP Server

Quick Start

Installation

# Install globally
npm install -g code-guider-mcp

# Start the server (migration runs automatically)
code-guider-mcp

Option 2: Local Development

# Clone the repository
git clone <your-repo-url>
cd code-guider

# Install dependencies
npm install

# Build the project
npm run build

# Run database migration (first time only)
npm run migrate

# Start the MCP server
npm start

Running the MCP Server

With npm (Global Installation)

# Start with defaults
code-guider-mcp

# Start on specific port
code-guider-mcp --port 8080

# Run migration only
code-guider-mcp --migrate

# Open database studio
code-guider-mcp --studio

# Show help
code-guider-mcp --help

With Local Development

# Start the MCP server
npm start

Multi-Project Support

Code Guider supports both global and project-specific modes:

Project Modes

  1. Global Mode (--global): Uses global database for all projects

  2. Project Mode (default): Uses project-specific database

  3. Auto-detect: Automatically detects project type and initializes

Project Management Commands

# Initialize a project (auto-detects type)
code-guider-mcp --init

# Initialize specific project
code-guider-mcp --init /path/to/project

# List all projects
code-guider-mcp --list-projects

# Use global storage
code-guider-mcp --global

# Use specific project
code-guider-mcp /path/to/project

Project Structure

~/.code-guider/                    # Global storage
β”œβ”€β”€ global.db                      # Global database
β”œβ”€β”€ config.json                    # Global configuration
└── projects/
    └── projects.json              # Project registry

/path/to/project/                  # Project-specific storage
└── .guidance/
    └── guidance.db                # Project database

Using with MCP Clients

With npm (Global Installation)

{
  "mcpServers": {
    "code-guidance": {
      "command": "code-guider-mcp"
    }
  }
}

With Local Development

{
  "mcpServers": {
    "code-guidance": {
      "command": "node",
      "args": ["dist/index.js"],
      "cwd": "/path/to/code-guider"
    }
  }
}

Architecture

Core Components

  1. MCP Server (src/mcp-server.ts): Main server implementation with tool handlers

  2. Hybrid Storage (src/hybrid-storage.ts): Combines Drizzle ORM for fast CRUD + VectorStorage for AI features

  3. Drizzle Storage (src/db/drizzle-storage.ts): Optimized database operations with SQLite

  4. Vector Storage (src/vector-storage.ts): AI-powered semantic search and embeddings

  5. Guidance Engine (src/guidance-engine.ts): Workflow execution and code analysis

  6. Type Definitions (src/types.ts): TypeScript interfaces for all data structures

Data Structure

.guidance/
β”œβ”€β”€ guidance.db               # SQLite database with hybrid storage
β”‚   β”œβ”€β”€ workflows            # Drizzle ORM table (fast CRUD)
β”‚   β”œβ”€β”€ templates            # Drizzle ORM table (fast CRUD)
β”‚   β”œβ”€β”€ quality_rules        # Drizzle ORM table (fast CRUD)
β”‚   β”œβ”€β”€ project_config       # Drizzle ORM table (fast CRUD)
β”‚   β”œβ”€β”€ workflows_vector     # Vector embeddings for semantic search
β”‚   β”œβ”€β”€ templates_vector     # Vector embeddings for semantic search
β”‚   └── quality_rules_vector # Vector embeddings for semantic search
β”œβ”€β”€ config/                   # Legacy file-based config (auto-migrated)
β”‚   └── project.json
β”œβ”€β”€ workflows/                # Legacy JSON files (auto-migrated to DB)
β”œβ”€β”€ templates/                # Legacy YAML files (auto-migrated to DB)
└── rules/                    # Legacy JSON files (auto-migrated to DB)

Hybrid Storage Benefits

  • Drizzle ORM: 3-10x faster CRUD operations with type-safe queries

  • Vector Storage: AI-powered semantic search and similarity matching

  • Automatic Migration: Seamless migration from file-based to hybrid storage

  • Performance: Optimized database operations with indexing and caching

  • Type Safety: Full TypeScript support with compiled queries

Hybrid Storage Implementation

The code-guider now uses a hybrid storage approach that combines the best of both worlds:

Drizzle ORM (Fast CRUD Operations)

  • 3-10x faster CRUD operations compared to file-based storage

  • Type-safe queries with full TypeScript support

  • Database indexing for optimized lookups

  • ACID transactions for data integrity

  • Connection pooling and query optimization

Vector Storage (AI Features)

  • Semantic search using vector embeddings

  • Similarity matching for finding related code

  • AI-powered suggestions based on content similarity

  • Pattern recognition across your codebase

Migration System

The system automatically migrates from the legacy file-based storage to the new hybrid approach:

# Run migration (first time only)
npm run migrate

This will:

  1. Create the SQLite database with proper schema

  2. Migrate existing workflows, templates, and rules

  3. Generate vector embeddings for semantic search

  4. Preserve all existing data and functionality

Performance Comparison

Operation

File-based

Hybrid Storage

LibSQL

Improvement

Write (100 items)

50-100ms

10-20ms

3-8ms

6-15x faster

Read (100 items)

20-50ms

5-15ms

2-5ms

4-20x faster

Search (100 items)

30-80ms

2-10ms

1-3ms

10-25x faster

Build Time

2-5s (tsc)

1-2s (tsc)

200-500ms (bun)

4-10x faster

Memory Usage

High (all data)

Low (streaming)

Minimal (pure JS)

5-50x less

Concurrent Reads

Poor (file locks)

Excellent (WAL)

Excellent (WAL)

3-10x better

MCP Functions

The Code Guider MCP Server provides 13 consolidated functions that replace the previous 47 individual functions, offering a cleaner and more organized API:

1. manage_workflows - Workflow Management

  • Actions: list, get, create, execute

  • Purpose: Unified workflow management operations

  • Example: { action: 'list', search: 'authentication' }

2. manage_templates - Template Management

  • Actions: list, create

  • Purpose: Unified template management operations

  • Example: { action: 'create', template: {...} }

3. analyze_code - Code Analysis

  • Types: guidance, validation, ai_analysis, similar_code

  • Purpose: Unified code analysis operations

  • Example: { analysisType: 'ai_analysis', filePath: '...', projectPath: '...' }

4. manage_quality_rules - Quality Rules Management

  • Actions: list, create

  • Purpose: Unified quality rules management

  • Example: { action: 'create', rule: {...} }

5. semantic_search - Semantic Search

  • Types: workflows, templates, code

  • Purpose: Unified semantic search across different content types

  • Example: { type: 'workflows', query: 'user authentication' }

6. manage_execution - Execution Management

  • Actions: execute, execute_ai, execute_roles, status, pause, resume

  • Purpose: Unified execution management operations

  • Example: { action: 'execute_roles', workflowId: '...', projectPath: '...' }

7. manage_roles - Role Management

  • Actions: list, guidance

  • Purpose: Unified role management operations

  • Example: { action: 'guidance', roleId: 'architect' }

8. ai_migrate - AI Migration

  • Types: data, workflows, templates, quality_rules

  • Purpose: Unified AI-powered migration operations

  • Example: { type: 'data', instruction: 'migrate all workflows to new format' }

9. manage_projects - Project Management

  • Actions: list, init, auto_init, info, sync

  • Purpose: Unified project management operations with Anubis-style auto-detection

  • Example: { action: 'auto_init', projectPath: '/path/to/project' }

10. manage_memories - Memory Management

  • Actions: save, search, list, get, stats

  • Purpose: Unified memory management operations

  • Example: { action: 'save', content: '...', type: 'best_practice', category: 'technical' }

11. manage_memory_rules - Memory Rules Management

  • Actions: enhance_request, init_project, list, create

  • Purpose: Unified memory rules management

  • Example: { action: 'enhance_request', request: '...', context: {...} }

12. get_execution_metrics - Execution Metrics

  • Purpose: Get detailed metrics for a workflow execution

  • Example: { executionId: 'exec_123' }

13. transition_role - Role Transition

  • Purpose: Transition to a different role in workflow execution

  • Example: { executionId: 'exec_123', toRoleId: 'architect' }

Benefits of Consolidation

  1. Reduced Function Count: 72% reduction (47 β†’ 13 functions)

  2. More MCP Slots: 27 additional slots for other MCP servers

  3. Cleaner API: Logical grouping of related operations

  4. Easier Maintenance: Fewer functions to maintain

  5. Better Organization: Related operations grouped together

  6. Consistent Interface: All functions follow similar patterns

Usage Examples

Consolidated API Examples

Project Management (Anubis-Style Auto-Detection)

// πŸš€ Auto-initialize project with full tech stack detection
const project = await mcpClient.callTool('manage_projects', {
  action: 'auto_init',
  projectPath: '/path/to/your/project',
});

// This will automatically:
// βœ… Scan your project files
// βœ… Detect React + TypeScript + Vite + Tailwind + Prisma + Jest
// βœ… Create project-specific memory rules
// βœ… Set up tech stack-specific workflows
// βœ… Initialize project database

// Get detailed project info
const info = await mcpClient.callTool('manage_projects', {
  action: 'info',
  projectPath: '/path/to/your/project',
});

// Results show full tech stack:
// πŸ”§ Tech Stack:
// Frameworks: react, next
// Languages: typescript, javascript
// Tools: vite, tailwindcss, jest, testing-library
// Databases: prisma
// Deployment: vercel

Workflow Management

// List workflows
const workflows = await mcpClient.callTool('manage_workflows', {
  action: 'list',
  search: 'authentication'
});

// Create a new workflow
const newWorkflow = await mcpClient.callTool('manage_workflows', {
  action: 'create',
  workflow: {
    name: 'React Component Generator',
    description: 'Generate React components with TypeScript',
    steps: [...],
    qualityChecks: [...]
  }
});

// Execute a workflow
const result = await mcpClient.callTool('manage_workflows', {
  action: 'execute',
  workflowId: 'react-component',
  projectPath: '/path/to/project',
  variables: { ComponentName: 'UserProfile' }
});

Code Analysis

// AI-powered code analysis
const analysis = await mcpClient.callTool('analyze_code', {
  analysisType: 'ai_analysis',
  filePath: '/path/to/component.tsx',
  projectPath: '/path/to/project',
  projectType: 'react',
});

// Get code guidance
const guidance = await mcpClient.callTool('analyze_code', {
  analysisType: 'guidance',
  filePath: '/path/to/component.tsx',
  projectPath: '/path/to/project',
});

// Find similar code
const similarCode = await mcpClient.callTool('analyze_code', {
  analysisType: 'similar_code',
  filePath: '/path/to/component.tsx',
  projectPath: '/path/to/project',
  limit: 5,
});
// Search workflows
const workflows = await mcpClient.callTool('semantic_search', {
  type: 'workflows',
  query: 'create a user authentication component',
  limit: 5,
});

// Search templates
const templates = await mcpClient.callTool('semantic_search', {
  type: 'templates',
  query: 'API endpoint with error handling',
  limit: 3,
});

// Search code patterns
const codePatterns = await mcpClient.callTool('semantic_search', {
  type: 'code',
  query: 'React hooks pattern',
  filePath: '/path/to/component.tsx',
  projectPath: '/path/to/project',
});

Execution Management

// Execute with roles
const result = await mcpClient.callTool('manage_execution', {
  action: 'execute_roles',
  workflowId: 'react-component',
  projectPath: '/path/to/project',
  agentType: 'cursor',
  variables: { ComponentName: 'UserProfile' },
});

// Get execution status
const status = await mcpClient.callTool('manage_execution', {
  action: 'status',
  executionId: 'exec-123',
});

// Pause execution
await mcpClient.callTool('manage_execution', {
  action: 'pause',
  executionId: 'exec-123',
  reason: 'User requested pause',
});

Memory Management

// Save a memory
await mcpClient.callTool('manage_memories', {
  action: 'save',
  content: 'Use React.memo for expensive components',
  type: 'best_practice',
  category: 'technical',
  tags: ['react', 'performance'],
});

// Search memories
const memories = await mcpClient.callTool('manage_memories', {
  action: 'search',
  query: 'React performance optimization',
  scope: 'global',
  limit: 10,
});

// Get memory statistics
const stats = await mcpClient.callTool('manage_memories', {
  action: 'stats',
});

AI Migration

// Migrate data with AI
const migration = await mcpClient.callTool('ai_migrate', {
  type: 'data',
  instruction:
    'migrate all workflows to new format with enhanced quality checks',
  source: 'file-based',
  target: 'hybrid-storage',
  options: { dryRun: true, backup: true },
});

// Migrate workflows
const workflowMigration = await mcpClient.callTool('ai_migrate', {
  type: 'workflows',
  transformation: 'add new quality checks and update step format',
  filters: { tags: ['react', 'component'] },
});

Migration Notes

  • All existing functionality is preserved

  • Performance impact is negligible

  • The consolidation uses action/type parameters to differentiate operations

  • Error handling and validation remain the same

  • All return formats remain unchanged

Development

Project Structure

src/
β”œβ”€β”€ index.ts                    # Entry point
β”œβ”€β”€ mcp-server.ts               # MCP server implementation
β”œβ”€β”€ hybrid-storage.ts           # Hybrid storage implementation
β”œβ”€β”€ storage-interface.ts        # Unified storage interface
β”œβ”€β”€ storage.ts                  # Legacy file-based storage
β”œβ”€β”€ vector-storage.ts           # AI-powered vector storage
β”œβ”€β”€ guidance-engine.ts          # Workflow execution engine
β”œβ”€β”€ db/
β”‚   β”œβ”€β”€ connection.ts           # Database connection management
β”‚   β”œβ”€β”€ drizzle-storage.ts      # Drizzle ORM operations
β”‚   └── schema.ts               # Database schema definitions
β”œβ”€β”€ enhanced-workflow-engine.ts # Enhanced workflow execution
β”œβ”€β”€ execution-tracker.ts        # Workflow execution tracking
β”œβ”€β”€ ai-guidance-engine.ts       # AI-powered guidance engine
β”œβ”€β”€ role-manager.ts             # Role-based workflow management
β”œβ”€β”€ migrate.ts                  # Database migration script
└── types.ts                    # TypeScript type definitions

Scripts

  • npm run build - Build the project using TypeScript compiler

  • npm run build:all - Build all entry points (index.js and migrate.js)

  • npm run dev - Build and run the server

  • npm start - Run the built server

  • npm run migrate - Run database migration (first time setup)

  • npm run db:generate - Generate Drizzle migrations

  • npm run db:migrate - Apply Drizzle migrations

  • npm run db:studio - Open Drizzle Studio (database GUI)

  • npm test - Run tests with Jest

  • npm run lint - Run Biome linting on src/

  • npm run lint:fix - Fix linting issues automatically

  • npm run format - Format code with Biome

  • npm run check - Run both linting and formatting checks

  • npm run check:fix - Fix both linting and formatting issues

  • npm run check:all - Check entire project

  • npm run format:all - Format entire project

  • npm run lint:all - Lint entire project

Note: All scripts use npm and standard Node.js tools. The migration script automatically handles the transition from file-based storage to hybrid storage with LibSQL.

AI-Powered Migration System

The Code Guider now includes intelligent migration tools that understand natural language instructions:

  • Natural Language Commands: Tell the AI what to migrate in plain English

  • Smart Transformation: AI automatically transforms data based on your instructions

  • Safe Migration: Built-in backup, dry-run preview, and validation features

  • Flexible Filtering: Migrate specific data based on tags, dates, types, and patterns

  • Rollback Support: Automatic backup creation before any migration

  • Validation: Post-migration validation ensures data integrity

Example Commands:

  • "migrate all workflows to new format with enhanced quality checks"

  • "convert templates to new schema and add missing fields"

  • "update quality rules severity levels and merge duplicates"

  • "transform React component templates to use new variable syntax"

LibSQL Migration

The project has been fully migrated to use LibSQL instead of better-sqlite3:

  • Cross-platform compatibility - works with both Bun and Node.js

  • Zero native dependencies - no compilation issues

  • SQLite-compatible - drop-in replacement for SQLite

  • Better performance than better-sqlite3

  • Simplified deployment with no native module requirements

Build Performance

The project uses TypeScript compiler for reliable and consistent builds:

  • Standard TypeScript compilation for maximum compatibility

  • Type checking during build process

  • Incremental compilation for faster subsequent builds

  • Source maps for better debugging experience

  • Cross-platform compatibility with all Node.js environments

Adding New Tools

  1. Define the tool in mcp-server.ts in the ListToolsRequestSchema handler

  2. Add the tool handler in the CallToolRequestSchema handler

  3. Implement the tool logic

  4. Update documentation

Code Quality & Formatting

Biome Configuration

This project uses Biome for linting and formatting, providing a fast and comprehensive code quality solution optimized for Node.js:

Features

  • ⚑ Ultra-fast: 10-100x faster than ESLint + Prettier

  • πŸ”§ All-in-one: Linting, formatting, and import organization

  • 🎯 Zero config: Works out of the box with sensible defaults

  • πŸš€ Node.js optimized: Native integration with Node.js runtime

  • πŸ“ Comprehensive rules: 200+ linting rules for code quality

  • 🎨 Consistent formatting: Automatic code formatting and style enforcement

Configuration

The project includes a comprehensive biome.json configuration that enforces:

Code Quality Rules:

  • βœ… No unused imports, variables, or functions

  • βœ… No unused classes, interfaces, types, or enums

  • βœ… No unused constants or parameters

  • βœ… DRY (Don't Repeat Yourself) code enforcement

  • βœ… No commented code (except TODO comments)

  • βœ… Consistent code style and formatting

File Coverage:

  • TypeScript and JavaScript files

  • Scripts directory

  • Configuration files

  • Excludes test files, build artifacts, and dependencies

Formatting Standards:

  • 2-space indentation

  • Single quotes for strings

  • Semicolons always

  • 100 character line width

  • LF line endings

  • Trailing commas (ES5 style)

Available Scripts

# Linting
npm run lint              # Lint src/ directory
npm run lint:fix          # Fix linting issues automatically
npm run lint:all          # Lint entire project
npm run lint:all:fix      # Fix all linting issues

# Formatting
npm run format            # Format src/ directory
npm run format:all        # Format entire project

# Combined checks
npm run check             # Check src/ (lint + format)
npm run check:fix         # Fix src/ (lint + format)
npm run check:all         # Check entire project
npm run check:all:fix     # Fix entire project

# Pre-commit hooks
npm run pre-commit:install # Install pre-commit hooks
npm run pre-commit:run     # Run pre-commit checks
npm run pre-commit         # Install and run pre-commit checks

Pre-commit Hooks

The project includes pre-commit hooks that automatically run:

  1. Biome Check: Linting and formatting validation

  2. TypeScript Check: Type checking with tsc --noEmit

  3. Test Check: Run test suite

  4. Format Check: Ensure code is properly formatted

To set up pre-commit hooks:

# Install pre-commit hooks
npm run pre-commit:install

# Run all checks manually
npm run pre-commit:run

IDE Integration

For the best development experience, install the Biome extension in your IDE:

Configuration Details

The biome.json configuration includes:

  • Extended config: Uses @canonical/biome-config for consistency

  • Comprehensive rules: 200+ linting rules across correctness, style, suspicious, complexity, performance, and security

  • File patterns: Includes TypeScript, JavaScript, and JSON files

  • Test overrides: Relaxed rules for test files

  • Import organization: Automatic import sorting and organization

  • Format consistency: Unified formatting across all file types

Performance Benefits

  • 10-100x faster than ESLint + Prettier

  • Single tool instead of multiple tools

  • Native Node.js integration for optimal performance

  • Parallel processing for large codebases

  • Incremental checking for faster subsequent runs

Configuration

Project Configuration

The project configuration is stored in .guidance/config/project.json:

{
  "name": "my-project",
  "type": "react",
  "frameworks": ["react", "typescript"],
  "languages": ["typescript", "javascript"],
  "qualityRules": ["no-unused-imports", "no-any-types"],
  "workflows": ["react-component", "api-endpoint"],
  "templates": ["react-component", "api-endpoint"]
}

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests if applicable

  5. Submit a pull request

License

MIT License - see LICENSE file for details

Support

For questions and support, please open an issue on GitHub.

Available Tools

25 tools
ai_migrateC

Unified AI-powered migration operations

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesType of migration to perform
sourceNoSource format (optional for data, default: file-based)
targetNoTarget format (optional for data, default: hybrid-storage)
filtersNoFilters for migration (optional)
optionsNoMigration options (optional)
instructionNoMigration instruction (required for data type)
transformationNoTransformation description (required for other types)

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It does not mention whether migrations are destructive (e.g., overwriting existing data), whether they require permissions, whether they are synchronous or asynchronous, or what side effects may occur. 'Unified' implies a single tool for many behaviors but obscures what each type actually does.

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

Conciseness3/5

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

The description is only one short phrase, so it is concise. However, it is under-specified: 'Unified AI-powered migration operations' is more of a vague label than a proper behavioral description. There is minimal content to structure, and what exists is generic.

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?

This is a complex, multi-purpose tool with 7 parameters, nested objects, 4 enum types, and no output schema. The description does not explain return values, behavior differences across types, idempotency, or failure modes. For a tool this broad, one phrase is grossly insufficient.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter already has basic descriptions (type, source, target, filters, options, instruction, transformation). The description adds nothing beyond the schema. However, the schema itself provides meaningful parameter descriptions with conditional guidance (instruction required for data, transformation for other types), so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

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

The description says 'Unified AI-powered migration operations' which indicates a migration verb plus a resource family, but 'unified' suggests it conflates multiple distinct operations (data, workflows, templates, quality_rules) into one tool. It lacks specificity about what migrating means for each type and does not distinguish from the many sibling management tools (manage_quality_rules, manage_workflows, manage_templates) that overlap in domain.

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 on when to use this vs the many sibling management tools or auto_detect_workflow. The description provides no excluded alternatives or specific triggers. The type enum hints at usage domains, but the description itself gives no usage context whatsoever.

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

analyze_codeD

Unified code analysis operations

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results (optional for similar_code)
filePathYesPath to the file to analyze
projectPathYesPath to the project directory
projectTypeNoType of project (optional)
analysisTypeYesType of analysis to perform

TDQS

D1.9/5.0
Behavior1/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 gives zero information about side effects, whether this is read-only, what operations destroy/modify state, API costs, rate limits, or failure modes. 'Unified code analysis operations' reveals nothing about the tool's behavioral footprint. For a multi-mode tool conducting potentially expensive AI analysis, this is a critical gap.

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

Conciseness2/5

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

The description is extremely short (four words), which is efficient but severely under-specified. A four-word description is not conciseness; it's abdication of the documentation role. There's no front-loaded summary, no structure, and no attempt to communicate the tool's multi-modal nature despite having four distinct analysisType options.

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

Completeness1/5

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

This is a complex tool with 5 parameters, 4 analysis subtypes, no annotations, and no output schemaβ€”yet the description provides essentially nothing. For a tool performing multiple distinct analysis operations (guidance, validation, AI analysis, similar code search), the description should enumerate what each mode does and what results to expect. This is completely inadequate for the tool's complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all five parameters. The description adds nothing about parameter semantics beyond the schema. However, the schema descriptions are fairly clear (e.g., 'Path to the file to analyze', 'Type of analysis to perform'). Baseline 3 is appropriate given full schema coverage, though the description itself contributes zero value here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

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

The description 'Unified code analysis operations' is generic and tautologicalβ€”it restates the tool's name without specifying what code analysis operations it can perform. While the enum in the schema reveals four distinct analysis types (guidance, validation, ai_analysis, similar_code), the description itself provides zero differentiation between these operations or from sibling tools like get_guidance or semantic_search.

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 on when to use this tool versus alternatives such as get_guidance, semantic_search, or manage_execution. The description doesn't explain which analysisType to choose for which scenario, nor does it distinguish when analyze_code is appropriate versus the sibling tools that overlap with its capabilities.

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

auto_detect_workflowC

Automatically detect and suggest workflows based on natural language input

ParametersJSON Schema
NameRequiredDescriptionDefault
userInputYesNatural language input to analyze for workflow triggers
autoExecuteNoWhether to automatically execute detected workflows (default: false)
currentFileNoCurrent file being worked on (optional)
projectPathNoPath to project directory (optional)
projectTypeNoType of project (optional)

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full behavioral disclosure burden. It says 'detect and suggest' but doesn't state whether this triggers side effects, whether autoExecute requires confirmation, or what happens when autoExecute is true. Does not clarify if it writes to any store or just returns suggestions.

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 a single, efficient sentence that communicates the core purpose without excess. While under-specified in other dimensions, conciseness itself is goodβ€”no wasted words or irrelevancies.

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?

This is a moderately complex tool with 5 parameters, no annotations, and no output schema, yet the description offers only a single high-level sentence. It doesn't describe the suggestion output format, behavior of autoExecute, or how optional context parameters influence detection. For a tool with zero annotation coverage and no output schema, this is insufficient.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema documents all 5 parameters. The description mentions analyzing 'natural language input,' which maps to userInput, but adds minimal value beyond schema text. It implies currentFile/projectPath/projectType are contextual signals but doesn't explain how they influence detection. Baseline 3 is appropriate given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

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

The description states a clear verb+resource: 'detect and suggest workflows based on natural language input.' It distinguishes the purpose from siblings like manage_workflows and list_workflows, which handle workflow CRUD. However, it lacks specificity on what 'suggest workflows' produces or how it differs from start_workflow, which could cause selection ambiguity.

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 explicit guidance on when to use this tool vs alternatives. Given many sibling tools (start_workflow, list_workflows, get_workflow, manage_workflows), the description provides no context on when detection/suggestion is preferred over direct workflow management. No exclusions or alternative references are given.

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

get_execution_metricsC

Get detailed metrics for a workflow execution

ParametersJSON Schema
NameRequiredDescriptionDefault
executionIdYesID of the execution

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It indicates this is a read operation ('Get') but doesn't state anything about what metrics are included, whether this requires a running execution, what happens for failed executions, or what the response format looks like. For a metrics-retrieval tool with zero annotation coverage, this is a meaningful gap.

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 a single efficient sentence that states the tool's purpose without wasted words. It's appropriately concise for a single-purpose retrieval tool. Could be slightly more informative per sentence, but it is economically written.

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?

For a single-parameter read tool with no output schema and no annotations, this description is thin. It lacks guidance on the format of metrics returned, what distinguishes 'detailed' metrics from other metric tools, and any usage constraints. The sibling set includes get_metrics and get_workflow which creates ambiguity that the description fails to resolve.

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

Parameters3/5

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

Schema description coverage is 100%, meaning the executionId parameter is documented in the input schema itself. There is only one parameter, so the schema covers it fully. The description adds no additional semantics about what 'detailed metrics' means or how executionId is used beyond the schema, so it stays at the baseline 3 for high 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?

The description 'Get detailed metrics for a workflow execution' uses a specific verb+resource combination that clearly states the tool's function. It distinguishes from siblings like get_workflow (which presumably retrieves the execution itself) and get_metrics (which is more generic). The purpose is clear, though it could differentiate more explicitly from the sibling get_metrics tool.

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. There is a sibling get_metrics and get_workflow that could overlap or complement this tool, but no exclusions, context, or conditions are given. An agent would have to guess when metrics vs. workflow details are appropriate.

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

get_guidanceC

Get intelligent guidance for the current workflow step

ParametersJSON Schema
NameRequiredDescriptionDefault
stepIdNoSpecific step ID (optional, uses current step if not provided)
executionIdYesID of the workflow execution

TDQS

C2.8/5.0
Behavior3/5

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

No annotations are provided, so the description bears the full burden of behavioral disclosure. Given zero annotations, the description should clarify safety profile (read-only vs capable of side effects), whether it consumes significant resources, or whether it makes external calls. The tool name suggests a read operation (getting guidance), but the description doesn't confirm whether invoking it could trigger state changes or have side effects on the workflow.

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 a single concise sentence with zero waste. It's efficiently written and front-loaded. However, given the critical ambiguities around 'intelligent guidance,' a bit more elaboration on what the guidance constitutes would have been earned rather than verbosity.

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?

With no output schema and no annotations, the description must do more to explain what the tool returns and its behavioral contract. The phrase 'intelligent guidance' is too vague to tell an agent what to expect or how to interpret the result. Given the tool's AI-flavored nature, more detail on guidance categories or response format would substantially improve usability.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (executionId, stepId) are documented in the schema with their semantic meaning. The stepId explicitly states 'optional, uses current step if not provided' which is helpful. The description adds no additional parameter context beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

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

The description 'Get intelligent guidance for the current workflow step' has a clear verb+resource (get guidance for step) and implies an AI-assisted feature distinct from siblings. However, the term 'intelligent guidance' is vague - it doesn't specify what kind of guidance (explanations, suggestions, errors, next actions) or what output format. It's adequate but doesn't sharply define the deliverable.

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 when-to-use or when-not-to-use guidance is provided. The description doesn't explain how this differs from sibling tools like get_execution_metrics, get_workflow, or analyze_code, nor when a user would prefer guidance over querying these other capabilities. Siblings like analyze_code and semantic_search could overlap in providing intelligent assistance, but no differentiation is offered.

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

get_metricsC

Get execution metrics and progress information

ParametersJSON Schema
NameRequiredDescriptionDefault
executionIdYesID of the workflow execution

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility for disclosing behavioral traits. 'Get' implies a read operation, but the description doesn't clarify whether this is a safe/polling operation, what the response shape is, or any error conditions. There is no mention of what 'metrics' specifically includes or how progress is represented.

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 a single clear sentence with no filler. It's appropriately sized for a simple one-parameter read tool. It doesn't waste words but doesn't add substantial value beyond the title itself.

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?

The tool has only 1 parameter, no output schema, and no annotations. Given this simplicity, a minimal description is partially acceptable. However, the lack of output schema means the description should explain what metrics/progress data the agent can expect, and the ambiguity with 'get_execution_metrics' sibling suggests more context is needed.

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

Parameters3/5

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

Schema coverage is 100%, so the single parameter 'executionId' is already described in the schema as 'ID of the workflow execution'. The description adds no additional meaning beyond what the schema provides. Per the baseline rule, 3 is appropriate when schema fully documents the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

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

The description states 'Get execution metrics and progress information' which is reasonably specific (verb 'get' + resource 'execution metrics'). However, it's partially redundant with the sibling tool 'get_execution_metrics' which has a near-identical name and likely purpose, creating ambiguity about which tool to choose. The description doesn't distinguish it from that sibling.

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

Usage Guidelines1/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. Crucially, there is a sibling tool named 'get_execution_metrics' which appears to have an identical or overlapping purpose, yet the description offers no differentiation or exclusion criteria. There is also no guidance on prerequisites (e.g., whether an execution must be running first).

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

get_workflowB

Get details of a specific workflow

ParametersJSON Schema
NameRequiredDescriptionDefault
workflowIdYesID of the workflow

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It discloses this is a read operation ('Get'), but doesn't specify what details are returned (status, steps, configuration), whether it throws if the workflow doesn't exist, or any auth requirements. Given a get operation, some context about return content would help.

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?

One sentence, zero waste. Every word earns its place. Appropriate for a simple single-parameter retrieval 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?

For a simple single-param read tool with 100% schema coverage and no output schema, the description is arguably adequate. However, it lacks any mention of what 'details' entails, which for a workflow tool could be substantial (steps, config, state). The lack of sibling differentiation is a minor gap given the many workflow-related siblings.

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 coverage is 100% for the single workflowId parameter, and the schema description 'ID of the workflow' is adequate. The description provides no additional parameter meaning, but with 100% schema coverage, the baseline of 3 applies; the param is simple (a string ID) so minimal added value is needed.

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 states a clear verb+resource: 'Get details of a specific workflow'. It's distinct from sibling list_workflows (listing all) and start_workflow/pause_execution, though it doesn't explicitly name the distinction. 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 Guidelines2/5

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

No guidance on when to use this vs list_workflows (to enumerate workflows) or manage_workflows (to modify). The context that this is a retrieval tool for a known workflowId is implied but never stated. No exclusions or alternatives named.

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

init_samplesC

Initialize sample workflows and templates for auto-workflow detection

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform: init (initialize samples), status (get status), check (check if initialized)

TDQS

C2.8/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. The description implies initialization is a setup action but doesn't disclose whether it's destructive (would overwrite existing samples), idempotent, or requires specific environment state. The three actions in the schema (init/status/check) partially compensate by revealing behaviors, but the description itself adds little 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.

Conciseness4/5

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

The description is a single concise sentence with no waste. It front-loads the core purpose clearly. It could arguably be too sparse, but as written it's efficient and readable.

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?

For a tool with no annotations and no output schema, the description should provide more behavioral detail. The three-action pattern (init/status/check) is only discoverable via the schema, but there's no description of what status/check return, whether init is destructive, or what happens after initialization. Given the tool is part of a setup/detection flow, the description is incomplete for a new agent.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents the 'action' parameter including its enum values and descriptions. The description mentions 'initialize' which maps to one of the enum values, providing minor added context. Per rubric, high coverage grants a baseline of 3, and the description doesn't add meaningful semantics beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

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

The description states 'Initialize sample workflows and templates for auto-workflow detection' with a specific verb (initialize) and resource (sample workflows/templates), and ties it to the auto-workflow detection feature. This is reasonably clear but somewhat vague about what 'initialize' concretely accomplishes and doesn't distinguish itself from siblings like manage_workflows or auto_detect_workflow.

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 vs alternatives. It references 'auto-workflow detection' which hints at context, but there's no explicit when-to-use, when-not-to-use, or alternative tool naming. Given the large sibling set including auto_detect_workflow, manage_workflows, and manage_templates, the lack of differentiation is a real gap.

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

list_rolesB

List all available Anubis roles and their capabilities

ParametersJSON Schema
NameRequiredDescriptionDefault
agentTypeNoFilter roles by agent type

TDQS

B3.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 the burden. The description accurately frames this as a list (read) operation and indicates roles have 'capabilities', giving some context about return semantics. However, it doesn't disclose details like whether filtering changes the output structure, or what new/unknown roles look like. For a read-only listing tool the bar is modest, but no annotations mean some disclosure is expected.

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?

A single sentence that is front-loaded with the core action and purpose. It's appropriately concise with no filler. Could arguably add a usage note without bloating, but as written it is efficient.

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 read-only listing tool with zero required parameters and no output schema, this description is reasonably complete. The agent knows what action to take and roughly what to expect. However, given the large number of role-related siblings (manage_roles, transition_role, transition_role_workflow), a brief note about output format or what distinguishes roles listed here versus other role tools would improve completeness.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter 'agentType', and the description adds the phrase 'by agent type' which semantically reinforces the filter but adds no new detail beyond the schema. The enum values (cursor, copilot, roocode, kilocode) are self-explanatory. There's a subtle mismatch since the description says 'List all... roles' but the parameter filters by agent type - the description doesn't clarify the relationship for the agent.

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 states a specific verb+resource ('List all available Anubis roles') and mentions what's returned ('their capabilities'). It's clear enough, though it doesn't explicitly distinguish from the sibling 'manage_roles' tool which appears to be a CRUD operation on roles. The word 'all' signals listing scope.

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 this is a read-only listing tool, but provides no explicit when-to-use guidance or exclusions. Given the sibling 'manage_roles' exists for role management and 'transition_role' for changing roles, the agent might benefit from an explicit note about when listing is appropriate. Current guidance is only implied by the verb 'list'.

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

list_workflowsC

List all available Anubis workflows

ParametersJSON Schema
NameRequiredDescriptionDefault
agentTypeNoFilter workflows by agent type

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. 'List' implies a read-only operation, which gives some signal, but it doesn't disclose pagination behavior, result sorting, whether it returns empty lists vs errors, or performance characteristics for potentially large workflows. Adequate but thin for a listing tool with zero annotation coverage.

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?

One short sentence, no wasted words. It's efficient and front-loaded with the verb. Could argue it's slightly under-specified rather than concise, but the single-sentence structure is clean.

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 read-only listing tool with one fully-documented optional parameter, the description is minimally sufficient. However, no output schema means the description should hint at what the response contains (workflow names, metadata, etc.), and it doesn't. The tool is simple enough that this is a minor gap, but it could benefit from noting what fields appear in results.

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

Parameters3/5

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

The schema description coverage is 100% and the sole parameter agentType is fully described in the schema ('Filter workflows by agent type') with an enum. The description adds nothing beyond the schema. Baseline 3 applies since the schema fully documents the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

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

The description 'List all available Anubis workflows' uses a clear verb (list) and resource (workflows), but it doesn't distinguish itself from sibling tools like get_workflow (singular) or manage_workflows. 'Anubis' adds minimal context. It's clear but lacks differentiation from the management/crud siblings.

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 explicit guidance on when to use this tool vs alternatives. There's no mention of exclusions, prerequisites, or when to prefer get_workflow, manage_workflows, or auto_detect_workflow instead. The optional agentType filter is discoverable via schema but not contextualized.

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

manage_executionD

Unified execution management operations

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform
reasonNoReason for pausing (optional for pause)
agentTypeNoType of agent (optional for execute_roles)
variablesNoVariables for execution (optional)
workflowIdNoID of workflow (required for execute actions)
executionIdNoID of execution (required for status/pause/resume)
projectPathNoPath to project (required for execute actions)

TDQS

D1.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. The description discloses nothing about side effects: what 'execute' does to the system, whether pause/resume are reversible, what happens to in-flight executions, or whether execute_ai has different resource implications. For a mutation-heavy tool (execute, pause, resume are all state-changing), total opacity 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.

Conciseness2/5

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

While the description is short (one sentence), this is under-specification rather than conciseness. A four-word sentence describing a seven-parameter, six-action tool is insufficient. The description does not earn its place because it communicates nothing actionable beyond what the tool name already implies.

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

Completeness1/5

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

This is a complex tool with 7 parameters, 6 enum actions, nested objects, and no output schema, yet the description provides almost no information. It doesn't explain return values, prerequisites, the distinction between execute variants, or error conditions. Given the complexity and zero annotations, the description is severely inadequate.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no parameter meaning beyond the enum list in the schema. The action enum itself conveys the parameter semantics well (each value self-describes its intent), and optionality markers are in the schema. Baseline 3 is appropriate given full schema coverage, though the description contributes essentially nothing beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

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

The description 'Unified execution management operations' is vague and generic. It combines six distinct operations (execute, execute_ai, execute_roles, status, pause, resume) under one umbrella name without explaining what each does or when to use which. The enums in the action parameter provide more specificity than the description itself, which reads more like a category label than a tool purpose.

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

Usage Guidelines1/5

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

There is zero usage guidance. The description does not explain when to use execute vs execute_ai vs execute_roles, when status/pause/resume are appropriate, or how this tool relates to siblings like pause_execution, resume_execution, and start_workflow which appear to overlap in functionality. This is particularly problematic given the sibling overlap.

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

manage_memoriesC

Unified memory management operations

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoMemory ID (required for get)
tagsNoTags for memory (optional for save)
typeNoType of memory (required for save)
limitNoMaximum number of results (optional for search/list)
queryNoSearch query (required for search)
scopeNoMemory scope (optional for search/list/get)
actionYesAction to perform
contentNoMemory content (required for save)
contextNoAdditional context (optional for save)
categoryNoCategory of memory (required for save)

TDQS

C2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. However, it discloses nothing about side effects (e.g., whether save persists globally, whether stats is read-only, whether get returns full objects), data lifecycle, or permissions. For a multi-action mutation tool with five distinct operations and zero annotation coverage, this 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.

Conciseness3/5

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

The description is short, but this is under-specification rather than concise efficiency. One vague sentence 'Unified memory management operations' conveys almost no information. There is no front-loading of key behaviors and no structured presentation of the five distinct actions the tool supports.

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

Completeness1/5

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

For a tool with 10 parameters, 5 distinct actions, 4 enum constraints, nested objects, and no output schema, the description is profoundly inadequate. It does not explain action-specific parameter requirements, return values for each action, error cases, or relationship to siblings like manage_memory_rules. The tool's complexity demands substantial descriptive support that is entirely absent.

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

Parameters3/5

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

Schema description coverage is 100%, so all 10 parameters are documented within the schema itself, giving a baseline of 3. The description adds nothing beyond what the schema provides for parameter meaning. However, the schema's dependency structure (which params are required per action) is only implied via 'required for X' hints and could benefit from clarification in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

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

The description 'Unified memory management operations' is vague and does not state a specific verb+resource. It fails to differentiate from siblings like manage_memory_rules and semantic_search. While the action enum (save/search/list/get/stats) clarifies some behavior, the description itself provides no concrete statement of what the tool does.

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

Usage Guidelines1/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 manage_memory_rules or semantic_search. There is no context about which actions require which parameters or when this unified tool should be preferred over sibling tools. The description offers zero usage direction.

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

manage_memory_rulesD

Unified memory rules management

ParametersJSON Schema
NameRequiredDescriptionDefault
ruleNoMemory rule definition (required for create)
scopeNoRule scope (optional for list)
actionYesAction to perform
contextNoContext information (required for enhance_request)
requestNoOriginal request (required for enhance_request)
projectPathNoPath to project (required for init_project)
projectTypeNoType of project (required for init_project)

TDQS

D1.7/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It reveals nothing about side effects, prerequisites, auth needs, or what happens during each of the 4 different actions. The description is completely silent on behavioral implications despite this being a management tool that presumably mutates memory rule state.

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

Conciseness3/5

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

The description is extremely short at 4 words, which technically is concise but is actually under-specification rather than efficiency. There's no structure, no front-loaded actionable information, and no distinguishing detail. While there's no waste, there's also almost no contentβ€”this is closer to an empty placeholder than proper conciseness.

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

Completeness1/5

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

This tool has 7 parameters including nested objects, 4 distinct actions with very different requirements, and no annotations or output schema. The description does nothing to explain the workflows of the 4 actions, what a 'memory rule' is, or how the actions relate. For a tool with this complexity, the description is severely inadequate.

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

Parameters3/5

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

Schema description coverage is 100%, so all 7 parameters are described in the schema itself. The descriptions in the schema include basic usage context (e.g., 'required for create', 'optional for list'). However, the description adds no meaning beyond the schemaβ€”it doesn't explain relationships between parameters or clarify expected formats for nested objects like 'rule' and 'context'. Baseline 3 is appropriate given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

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

The description 'Unified memory rules management' is vagueβ€”it doesn't state what operations are performed, what a 'memory rule' is, or what the tool accomplishes. It's nearly a tautology of the tool name. With 4 distinct actions (enhance_request, init_project, list, create) covering very different behaviors, the description gives the agent no sense of what this tool actually does or which sibling it differentiates against.

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

Usage Guidelines1/5

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

The description provides zero guidance on when to use this tool, when not to, or how it differs from sibling tools like manage_memories, manage_quality_rules, or manage_workflows. With such a generic description and so many sibling tools, an agent cannot determine when to select this tool over alternatives.

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

manage_projectsC

Unified project management operations

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform
projectPathNoPath to project directory (optional, defaults to current)
projectTypeNoType of project (optional for init, auto-detected for auto_init)

TDQS

C2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. However, it reveals nothing about side effects β€” whether 'init' creates directories, whether 'sync' modifies files, whether auto_init mutates state. For a multi-action tool involving both reads (list, info) and writes (init, sync), this 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.

Conciseness3/5

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

The description is extremely short, which is efficient, but it under-specifies rather than concisely captures essential information. One sentence with no structure or detail is closer to under-specification than skilled conciseness.

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

Completeness1/5

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

This is a 5-action overloaded tool with no output schema and no annotations. Each action has different semantics, inputs, and side effects, yet the description provides a single vague sentence. The agent has no way to know what each action returns or what effects each has β€” completely inadequate for a tool of this complexity.

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?

Although schema coverage is 100%, the schema descriptions are skeletal ('Action to perform', 'Path to project directory'). The description adds zero parameter context β€” notably, it fails to explain the semantics of each enum value (what 'auto_init' vs 'init' do differently, or what 'sync' synchronizes against). Even with full schema coverage, the enum values are opaque without explanation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

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

The description 'Unified project management operations' is vague β€” it identifies a general domain (projects) but not a specific verb or resource. While the parameter enum (list, init, auto_init, info, sync) hints at distinct operations, the description itself does not state what the tool does, making it hard to distinguish from siblings like manage_workflows or manage_quality_rules.

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 on when to use this tool versus alternatives is provided. With siblings like auto_detect_workflow, init_samples, and manage_workflows, the agent cannot determine when manage_projects is the right choice or what prerequisites exist (e.g., must an init happen before sync?).

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

manage_quality_rulesC

Unified quality rules management

ParametersJSON Schema
NameRequiredDescriptionDefault
ruleNoQuality rule definition (required for create)
actionYesAction to perform

TDQS

C2.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 of behavioral disclosure. It doesn't mention side effects, whether create overwrites existing rules, validation behavior, or how quality rules differ from memory rules. For a mutation-capable tool with zero annotation coverage, this is a significant transparency gap.

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

Conciseness3/5

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

The description is extremely short (4 words), which is efficient but under-specified rather than genuinely concise. It lacks any instructional content. While there's no wasted text, brevity here comes at the cost of usefulness.

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?

The tool has a mutation action (create) but has no annotations, no output schema, and a nested 'rule' object with undocumented structure. The description does nothing to compensate for these gaps. An agent cannot reliably determine what 'quality rules' are, their schema, or what create returns.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are fully documented in the schema. However, the description adds nothing beyond the schema. The 'rule' parameter is a nested object with no inline properties documented, and the description doesn't clarify rule structure or fields. Baseline 3 is appropriate since schema handles basic documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

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

The description 'Unified quality rules management' uses a vague noun phrase rather than a verb+resource construction. It doesn't specify concrete operations beyond what the schema enum already reveals (list/create). It fails to distinguish from siblings like manage_workflows and manage_templates, and doesn't clarify what a 'quality rule' is or how it relates to manage_memory_rules.

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 on when to use this tool versus alternatives like manage_memory_rules or analyze_code. The description provides zero context for selection decisions; the agent must infer usage solely from the enum values in the schema.

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

manage_rolesC

Unified role management operations

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform
roleIdNoID of role (required for guidance)
contextNoContext for role guidance (optional)
agentTypeNoType of agent (optional for list)

TDQS

C2.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 full behavioral disclosure burden. It fails to disclose that this appears to be a dispatch/router tool selecting between 'list' and 'guidance' behaviors, nor does it explain any side effects, auth requirements, or how the nested 'context' object behaves. The description adds essentially nothing beyond what the name conveys.

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

Conciseness3/5

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

The description is a single short phrase, which is concise, but this is under-specification rather than effective conciseness. There is no opening framing for a multi-action dispatcher tool that handles two distinct behaviors (list and guidance). The word count is low, but it fails to earn its place by adding no useful information.

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?

Given the tool handles two distinct actions ('list' and 'guidance'), has a nested object parameter with no structure defined, and no output schema, the description is insufficient. The agent cannot know what the 'context' object should contain, what role guidance returns, or how this differs from get_guidance. A multi-action dispatcher with no annotations needs far more documentation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents each parameter. However, the description adds no semantic value beyond the schema. The relationship between parameters (e.g., that 'context' and 'roleId' are relevant only for 'guidance') must be inferred from the schema names. Baseline 3 applies since the schema handles parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

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

The description 'Unified role management operations' is extremely vague-it names a generic category rather than specifying verb+resource. It doesn't clarify what 'management' means (create? assign? delete?). With siblings like 'list_roles' and 'transition_role', the purpose is ambiguous and doesn't differentiate what manage_roles does uniquely.

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 on when to use this tool versus the alternatives. The 'unified' wording hints it's an aggregator or dispatcher, but nothing tells the agent when to choose manage_roles over list_roles, transition_role, or get_guidance. The schema's action enum ('list', 'guidance') implies it overlaps with list_roles and get_guidance, but this is unstated.

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

manage_templatesD

Unified template management operations

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform
searchNoSearch term for filtering (optional for list)
templateNoTemplate definition (required for create)

TDQS

D1.6/5.0
Behavior1/5

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

With no annotations provided, the description carries full burden of disclosure, but it provides nothing about behavior. It doesn't state whether operations are read-only or mutating, what gets affected by create, whether list is paginated, or any side effects. For a tool with a 'create' action that takes a nested object, this is a significant transparency gap.

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

Conciseness3/5

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

The description is a single short sentence, which is efficient. However, 'Unified template management operations' is under-specification rather than conciseness - it packs no useful information into its brevity. A tool description that is short but empty of meaning is not well-structured.

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

Completeness1/5

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

This tool has create and list actions, 3 params, a nested template object, no output schema, and no annotations. Given this complexity, the description is completely inadequate. It doesn't explain how create works, what the template schema accepts, what list returns, or how actions are dispatched. A two-action tool with a nested object requires far more documentation than a single uninformative sentence.

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?

Despite schema coverage being 100%, the schema descriptions are minimal ('Action to perform', 'Search term for filtering (optional for list)', 'Template definition (required for create)'). The description adds no meaning beyond the schema. The nested 'template' object's structure is entirely undocumented, which is a real gap since the schema doesn't describe its properties. With a nested object present and no description of its shape, the tool is hard to use.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

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

The description 'Unified template management operations' is vague - it doesn't specify a verb+resource with any concrete action. The name 'manage_templates' already conveys this. The enum actions (list/create) are in the schema, not the description. It fails to distinguish from siblings like manage_quality_rules or manage_workflows beyond the word 'templates'.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool vs alternatives. No when/when-not statements, no exclusions, no conditions. An agent has no idea when list vs create is appropriate or how this relates to template-related workflow tools.

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

manage_workflowsC

Unified workflow management operations

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform
searchNoSearch term for filtering (optional for list)
workflowNoWorkflow definition (required for create)
variablesNoVariables for workflow execution (optional)
workflowIdNoID of the workflow (required for get/execute)
projectPathNoPath to project directory (required for execute)

TDQS

C2.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 of behavioral disclosure. It discloses nothing about side effects: does 'execute' run workflows synchronously or asynchronously? Does 'create' persist to a store? Does 'get' require list first? The description is a single sentence with zero behavioral context. For a mutating tool (create, execute) with no annotation coverage, this is a substantial gap.

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

Conciseness3/5

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

It is extremely short (one sentence, 5 words), which is concise. However, this is under-specification rather than efficient conciseness. There is no front-loading of purpose since the sentence itself is the entire description. The brevity is not misleading but fails to spend any of its words on useful guidance.

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?

This is a 6-parameter tool with four distinct actions (list, get, create, execute) covering multiple modes of operation, nested objects, and no output schema. It faces numerous sibling workflow tools. The description is grossly inadequate for this complexityβ€”it doesn't explain return values, side effects of execute, the relationship between actions, or how to choose among siblings. For a multi-action unified tool, significantly more behavioral and usage detail is warranted.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter has some description in the schema. The tool description itself adds nothing beyond the generic 'Unified workflow management operations' phrase. Per the rubric, with high schema coverage, baseline is 3. The description adds no value but doesn't detract either; the schema's per-parameter descriptions plus the enum constraint carry the explanatory burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

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

The description 'Unified workflow management operations' is a vague, generic title rather than a specific verb+resource statement. 'Unified' suggests aggregation of multiple operations (list, get, create, execute) but gives no indication of what workflows are, what executing them entails, or how this tool differs from the many sibling workflow tools (list_workflows, get_workflow, start_workflow, manage_execution, auto_detect_workflow). The purpose is ambiguous given the crowded sibling context.

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 on when to use this tool vs alternatives. With siblings like start_workflow, list_workflows, get_workflow, manage_execution, and auto_detect_workflow, the description gives zero distinction. It's unclear whether 'execute' here means the same as 'start_workflow' or if 'create' overlaps with 'init_samples'. Only the action enum and parameter requirements hint at usage boundaries, but these are schema-driven, not described.

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

pause_executionC

Pause a workflow execution

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoReason for pausing the execution
executionIdYesID of the workflow execution

TDQS

C2.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It doesn't state what state the execution transitions to, whether the pause is immediate or queued, whether it's resumable, any side effects, or whether permissions are required. The single sentence provides no behavioral context beyond the verb itself.

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

Conciseness3/5

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

The description is extremely short (6 words), which shows restraint but crosses into under-specification. It's front-loaded but lacks any additional value-adding sentences about behavior, alternatives, or effects. Minimalism here isn't quite the same as disciplined conciseness.

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?

This is a mutating tool (pauses execution) with no annotations and no output schema, so the description must compensate. There are 2 parameters with 100% schema coverage, but the description fails to disclose the state transition, reversibility, prerequisites, or interaction with resume_execution. For a lifecycle-affecting tool, this is inadequate.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (executionId and reason) are documented in the schema. The description doesn't add meaning beyond the schema, but per the rubric, baseline is 3 when coverage is high. The reason parameter's optionality and semantics are only implied by the schema, not elaborated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

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

The description 'Pause a workflow execution' uses a clear verb (Pause) and resource (workflow execution), identifying the core action. However, it doesn't distinguish itself from siblings like resume_execution, start_workflow, or manage_execution, nor does it clarify any scoping nuances (e.g., does it pause one execution or all in a workflow instance). It's minimally clear but lacks distinguishing context from closely related tools.

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?

There is no guidance on when to use this tool versus alternatives like resume_execution or manage_execution. No conditions, prerequisites, or context are provided for when pausing is appropriate or what state the execution must be in. The description offers no exclusions or alternative tool references.

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

report_completionC

Report completion of a workflow step with metrics and results

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoAdditional notes about the step completion
statusYesStatus of the step completion
metricsNoMetrics for the completed step
executionIdYesID of the workflow execution
filesCreatedNoList of files created during this step
filesModifiedNoList of files modified during this step

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so the description carries the full burden of behavioral disclosure. 'Report completion' implies a write/persist operation, but the description doesn't state whether this updates a workflow state, whether it can overwrite previous reports, what happens on failure to report, or any side effects beyond recording. For a state-modifying tool with zero annotation coverage, this is a notable gap.

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?

A single, efficient sentence that captures the core purpose. No wasted words or redundancy. It's appropriately concise for a tool whose parameters are well documented in 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?

With 6 parameters (including nested metrics objects and two file-array params), no output schema, and zero annotations, the description is underspecified. It doesn't clarify the relationship between the nested 'metrics' object and the top-level filesCreated/filesModified arrays (redundancy risk), nor what a successful report returns or when it's appropriate to report partial vs failed status.

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

Parameters3/5

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

Schema description coverage is 100%, so structural parameter documentation is complete. The description mentions 'metrics and results' which maps broadly to the metrics/files fields, but adds no meaning beyond the schema. Baseline 3 is appropriate since the schema already documents all parameters well.

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 uses a specific verb ('Report') with a clear resource ('completion of a workflow step') and mentions it includes 'metrics and results'. It clearly differentiates from siblings like get_execution_metrics (reading) and start_workflow/pause_execution (lifecycle control), though it doesn't explicitly name alternatives.

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 on when to use this vs alternatives. It doesn't state whether this should be called at the end of each workflow step, whether it replaces or complements other reporting tools, or any exclusions. Given the sibling set includes get_metrics, analyze_code, and manage_execution, clear usage direction would help.

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

resume_executionC

Resume a paused workflow execution

ParametersJSON Schema
NameRequiredDescriptionDefault
executionIdYesID of the workflow execution

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Resume' implies a state change on an existing workflow, but the description doesn't disclose side effects, whether the operation is reversible, what state the workflow must be in (paused vs. failed vs. completed), or whether any validation occurs on the executionId.

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?

A single, efficient sentence with zero waste. Directly states the action and resource. There's no preamble, filler, or redundant phrasing.

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?

For a state-changing tool with no annotations and no output schema, the description is too minimal. It doesn't explain what happens after resuming (does it continue from pause point?), error conditions, or required preconditions. A paired tool exists (pause_execution) suggesting an orchestration lifecycle, but no context is provided about how this fits in.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter (executionId), which already describes 'ID of the workflow execution'. The description adds no additional meaning about the parameter beyond the schema. Baseline 3 is appropriate since the schema fully covers the parameter.

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 'Resume a paused workflow execution' clearly states the verb (resume) and resource (paused workflow execution). It distinguishes from siblings like pause_execution and start_workflow. Could be more specific about what resuming entails, but the basic purpose is clear.

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 on when to use this tool vs alternatives. The sibling tools include pause_execution, start_workflow, and manage_execution, but the description doesn't clarify how resume_execution differs from starting a fresh workflow or when resume is appropriate. No context on prerequisites or state requirements.

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

start_workflowC

Start a new Anubis workflow execution with intelligent role-based guidance

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoAdditional context for the workflow execution
agentTypeNoType of AI agent executing the workflowcursor
workflowIdYesID of the workflow to start

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Intelligent role-based guidance' hints at behavior but is vagueβ€”does it auto-assign roles? Does it fail without a role defined? What side effects occur (state changes, task triggers, notifications)? No behavioral detail about execution lifecycle, idempotency, or whether starting an already-running workflow is an error is disclosed.

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?

Single sentence, front-loaded with the primary action, zero wasted words. It's concise and efficient, though the 'intelligent role-based guidance' phrase adds marketing tone without concrete technical 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 workflow-starting tool with moderate complexity (3 params, nested context object), the minimal description is somewhat adequate given strong schema coverage, but it lacks important context: the relationship to role guidance (what roles are involved), failure modes, and relationship to sibling workflow tools like auto_detect_workflow and transition_role_workflow. With no output schema and no annotations, more behavioral context is warranted.

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

Parameters3/5

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

Schema description coverage is 100% and includes decent per-parameter descriptions (workflowId, agentType with enum and default, context with additionalProperties). The description adds 'role-based guidance' context that relates to role semantics but doesn't explain how context or agentType affect execution beyond their schema descriptions. Baseline 3 is appropriate given the strong schema 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?

The description states a specific verb+resource ('Start a new Anubis workflow execution') with a distinctive qualifier ('intelligent role-based guidance'), which distinguishes it from siblings like manage_execution and pause_execution. It's clear but doesn't fully differentiate from auto_detect_workflow or get_guidance, which could overlap in intent.

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 explicit guidance on when to use this tool vs alternatives. The description mentions 'intelligent role-based guidance' which implies this tool provides role-aware execution, but it doesn't explicitly name alternatives or exclude situations (e.g., when to use auto_detect_workflow instead, or whether this replaces pause/resume workflows). Siblings like start workflow vs manage_execution create ambiguity unresolved by the description.

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

transition_roleC

Transition to a different role in workflow execution

ParametersJSON Schema
NameRequiredDescriptionDefault
toRoleIdYesID of the role to transition to
executionIdYesID of the execution
handoffNotesNoNotes for the role transition (optional)

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It doesn't mention whether this is a mutating operation (though 'transition' implies state change), whether permission requirements exist, whether the transition is reversible, or what side effects occur. The description adds minimal behavioral context beyond what the name implies.

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 a single, compact sentence with zero wasted words. It's appropriately brief for a tool whose parameters are well-documented in the schema. Efficient and to the point.

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?

The tool is a state-changing operation (role transition) with no annotations and no output schema. The description should clarify when transitions are valid, what constraints exist (e.g., allowed transition paths), and what happens to the execution state. None of this is addressed. For a mutation-type tool with three parameters, more context is needed.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters are documented in the schema. The description itself doesn't add additional parameter meaning beyond the schema. Baseline 3 is appropriate since the schema handles parameter documentation adequately, though the description adds no extra semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

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

The description 'Transition to a different role in workflow execution' uses a clear verb (transition) and resource (role in workflow execution). However, it's quite generic and doesn't distinguish itself from sibling tool 'transition_role_workflow', which sounds nearly identical. The description names the action but doesn't clarify the specific scope or how it differs from the sibling.

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. With a sibling tool named 'transition_role_workflow' that appears functionally identical, there's no differentiation. No when-to-use, when-not-to-use, or alternative tool references are given.

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

transition_role_workflowC

Transition to a different role in the workflow execution

ParametersJSON Schema
NameRequiredDescriptionDefault
toRoleYesRole to transition to
decisionsNoKey decisions made in the current role
rationaleNoRationale for the role transition
executionIdYesID of the workflow execution
handoffNotesYesNotes for the role transition

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It's a state-changing operation (transition) but provides no detail about side effects: what happens to the current role's state, whether the transition is reversible, whether handoffNotes are stored/visible, or what happens if transition fails. For a mutation tool with zero annotation coverage, this 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.

Conciseness4/5

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

The description is a single efficient sentence with no waste. It gets to the point quickly. Slightly more could be added given the tool's complexity, but there are no redundant phrases or filler.

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?

For a workflow-transition tool with 5 parameters including ambiguously overlapping fields (rationale vs handoffNotes), no output schema, and no annotations, the description is inadequate. It should clarify expected values for 'toRole', the behavioral consequences of a transition, and how it relates to the nearly identical sibling 'transition_role'. The description leaves too much to the agent's inference.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 5 parameters. The description adds no parameter-level meaning beyond what the schema provides β€” it doesn't clarify the distinction between 'rationale' and 'handoffNotes' (both sound similar), nor what format 'toRole' expects or what 'decisions' items should contain. Baseline 3 applies when schema carries the load, but no extra value is added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

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

The description 'Transition to a different role in the workflow execution' is a clear verb+resource statement conveying the core purpose. However, it doesn't distinguish from the sibling tool 'transition_role' which appears to be a near-duplicate β€” the relationship between the two is entirely unexplained, so an agent cannot tell which to use.

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 when-to-use guidance, no exclusions, and no differentiation from the sibling 'transition_role' tool. The description gives no context about when this workflow-level transition is preferred, what prerequisites exist (e.g., must the workflow be running?), or what role names are valid.

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 updatesv1.0.4
    • First observedai_migrate
    • First observedanalyze_code
    • First observedauto_detect_workflow
    • First observedget_execution_metrics
    • First observedget_guidance
    • First observedget_metrics
    • First observedget_workflow
    • First observedinit_samples
    • First observedlist_roles
    • First observedlist_workflows
    • First observedmanage_execution
    • First observedmanage_memories
    • First observedmanage_memory_rules
    • First observedmanage_projects
    • First observedmanage_quality_rules
    • First observedmanage_roles
    • First observedmanage_templates
    • First observedmanage_workflows
    • First observedpause_execution
    • First observedreport_completion
    • First observedresume_execution
    • First observedsemantic_search
    • First observedstart_workflow
    • First observedtransition_role
    • First observedtransition_role_workflow

TDQS

C2.2/5.0

Scored across 25 tools

Disambiguation2/5

Several tools have highly overlapping purposes: manage_workflows, start_workflow, get_workflow, list_workflows, auto_detect_workflow all relate to workflows but with unclear boundaries. Additionally, transition_role and transition_role_workflow appear to do essentially the same thing (both 'transition to a different role in workflow execution'), and there are two metrics tools (get_metrics, get_execution_metrics) with overlapping descriptions. The 'manage_*' family and the specific workflow tools create significant ambiguity about which tool to select.

Naming Consistency2/5

The naming is inconsistent with mixed conventions. Some tools use a 'manage_X' prefix pattern (manage_quality_rules, manage_workflows, manage_templates), while others use verb_front patterns (start_workflow, get_guidance, report_completion, pause_execution), and some mix style (ai_migrate, init_samples using abbreviations). There are also duplicates with different names (transition_role vs transition_role_workflow, get_metrics vs get_execution_metrics) indicating no coherent naming scheme.

Tool Count2/5

25 tools is on the heavy side for an MCP server. Several tools appear to be near-duplicates (transition_role vs transition_role_workflow, get_metrics vs get_execution_metrics), which inflates the count. The 'manage_*' and role/workflow concepts overlap heavily, suggesting the surface could be significantly consolidated. This feels somewhat bloated for the scope of a workflow guidance server.

Completeness3/5

The workflow lifecycle is reasonably covered: start, list, get, pause, resume, report completion, transition roles, get guidance, and metrics. However, there's no explicit cancel/stop operation, no obvious tool for listing or getting execution details directly (only metrics), and the relationship between 'manage_execution', 'pause_execution', 'resume_execution', and 'start_workflow' is unclear. The gap between auto-detection/init_samples and the actual workflow tools suggests some portions are underdeveloped.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An AI-powered MCP server that provides development tools for code analysis, documentation, and project management including code pattern extraction, humorous code reviews, TODO scanning, and PRD generation.
    5 npm
    ISC
  • A
    license
    Not graded
    quality
    D
    maintenance
    A local MCP server providing persistent memory for AI coding assistants by storing and searching architectural decisions, patterns, and solutions. It also includes tools for git automation and mapping codebase expertise based on project history.
    MIT