Getting Started
The MCP Tool Registry is a data-only npm package — no executable code, just JSON metadata for every tool in the ecosystem.
Installation
Section titled “Installation”npm install @mcptoolshop/mcp-tool-registryImport the full registry
Section titled “Import the full registry”import registry from "@mcptoolshop/mcp-tool-registry/registry.json" with { type: "json" }
console.log(`${registry.tools.length} tools registered`)console.log(registry.tools[0].id)Import a bundle
Section titled “Import a bundle”Bundles are rule-generated subsets of the registry grouped by purpose:
import coreBundle from "@mcptoolshop/mcp-tool-registry/bundles/core.json" with { type: "json" }import agents from "@mcptoolshop/mcp-tool-registry/bundles/agents.json" with { type: "json" }Available bundles: core, agents, ops, evaluation.
Use the search index
Section titled “Use the search index”A pre-built search index ships inside the package — no server or runtime computation required:
import toolIndex from "@mcptoolshop/mcp-tool-registry/dist/registry.index.json" with { type: "json" }
const hits = toolIndex.filter(t => t.keywords.includes("accessibility"))LLM context
Section titled “LLM context”For RAG pipelines, import the plain-text context file:
import llmContext from "@mcptoolshop/mcp-tool-registry/dist/registry.llms.txt"Search locally
Section titled “Search locally”The package ships with CLI scripts for searching and exploring the registry without any network requests:
# Keyword search (ranked by relevance)node scripts/query.mjs --q "testing"
# Filter by bundlenode scripts/query.mjs --bundle core
# Filter by tagnode scripts/query.mjs --tag accessibility
# JSON output for scriptingnode scripts/query.mjs --q "agent" --json
# Show why results matchednode scripts/query.mjs --q "file" --explain
# View top tags, bundle counts, and ecosystem statsnode scripts/facets.mjsPinning
Section titled “Pinning”Pin a registry version in your package.json and get identical metadata on every install:
{ "dependencies": { "@mcptoolshop/mcp-tool-registry": "1.1.5" }}The registry hash in dist/derived.meta.json lets you verify the exact state of any pinned version.
The v1 contract is stable — new optional fields may appear in minor versions, but no existing required fields will change within a major version.