Skip to main content
Glama

tool-disco

TypeScript MCP License

A tool discovery-oriented MCP (Model Context Protocol) server that matches tools to natural language goals. It integrates with Azure DevOps to discover tools documented in wikis and uses code-graph-rag for code analysis.

Features

  • Natural Language Tool Discovery: Describe what you want to accomplish, and tool-disco finds matching tools

  • Azure DevOps Integration: Scans organization wikis for tool documentation with front matter metadata

  • Code Graph Integration: Ingests repositories via code-graph-rag-mcp for code analysis

  • Tool Composition: Automatically generates multi-tool workflows

  • Proxy Testing: Tests tool candidates using lightweight proxies, scripts, and simple models

Related MCP server: Forage MCP Server

Installation

npm install
npm run build

Usage

As an MCP Server

Add to your MCP client configuration:

{
  "mcpServers": {
    "tool-disco": {
      "command": "node",
      "args": ["/path/to/tool-disco/dist/index.js"]
    }
  }
}

Available Tools

discover_tools

Discover tools matching a natural language goal.

{
  "goal": "I need to process CSV files and generate reports",
  "context": "Working with sales data",
  "constraints": ["Must handle large files", "Output as PDF"]
}

scan_azure_devops

Scan an Azure DevOps organization for repositories with wikis and extract tool metadata.

{
  "organization": "https://dev.azure.com/myorg",
  "pat": "your-personal-access-token",
  "project": "optional-project-name"
}

ingest_repo

Ingest a repository into the code graph for tool discovery.

{
  "repoUrl": "https://github.com/org/repo",
  "repoName": "my-repo"
}

test_composition

Test a tool composition against the discovery goal.

{
  "compositionId": "composed-tool1-tool2",
  "inputs": { "file": "data.csv" }
}

list_candidates

List all registered tool candidates.

get_discovery_stats

Get statistics about discovered tools and ingested repositories.

Wiki Front Matter Format

Document tools in Azure DevOps wikis using YAML front matter:

---
toolName: data_processor
description: Processes data files and extracts insights
tags: data,processing,etl
timeout: 5000
implementation: scripts/processor.js
inputs:
  file:
    type: string
    description: Path to the input file
---

# Data Processor

Documentation for the data processor tool...

Architecture

   graph TB
       subgraph "Tool Disco MCP Server"
           ADO[Azure DevOps Integration]
           CG[Code Graph Integration]
           TD[Tool Discovery]
           PT[Proxy Tester]
           ADO --> TD
           CG --> TD
           TD --> PT
       end

Development

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

# Type check
npm run lint

Available Tools

8 tools
discover_toolsA

Discover tools that match a natural language goal description. Returns tool candidates and compositions that can accomplish the task.

Inputs: goal (required), context, examples, constraints.

get_discovery_statsA

Get statistics about discovered tools and ingested repositories

Inputs: no named parameters.

ingest_repoB

Ingest a repository into the code graph for tool discovery

Inputs: repoUrl (required), repoName (required).

invoke_planned_toolA

Execute a planned tool returned by plan_capabilities_for_goal

Inputs: toolId (required), args.

list_candidatesB

List all registered tool candidates available for discovery

Inputs: no named parameters.

plan_capabilities_for_goalA

Plan capabilities from discovered tools and code-graph suggestions, returning the planned tool IDs to invoke.

Inputs: goal (required), project, preferredTags.

scan_azure_devopsB

Scan an Azure DevOps organization for repositories with wikis and extract tool metadata from front matter

Inputs: pat (required), organization (required), project.

test_compositionB

Test a tool composition against the discovery goal using proxy implementations

Inputs: compositionId (required), inputs.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 8 tools

    Disambiguation3/5

    Most tools have clear roles, but discover_tools and plan_capabilities_for_goal both address goal-driven tool selection, which could cause misselection. test_composition adds another layer of ambiguity about how it relates to discover_tools.

    Naming Consistency5/5

    All tools follow a consistent verb_noun snake_case pattern (e.g., discover_tools, ingest_repo, invoke_planned_tool). The naming convention is uniform and predictable.

    Tool Count5/5

    8 tools is well within the ideal 3-15 range, covering distinct stages of the discovery workflow without excess. Each tool appears to serve a necessary function.

    Completeness4/5

    The set covers discovery, ingestion, planning, invocation, and stats, forming a cohesive workflow. However, it lacks explicit management of registered candidates beyond Azure DevOps scanning, which could be a minor gap.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers