Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
🤖 Automatically generate MCP tools from your Fastify API routes. @mcp-it/fastify 🤖 Automatically generate MCP tools from your Fastify API routes. A Fastify plugin (@mcp-it/fastify) for the Model Context Protocol (MCP) that allows you to expose your Fastify routes as MCP tools. This enables AI assistants to interact with your API directly through the MCP protocol. Overview This plugin automatically discovers your Fastify routes and exposes them as tools consumable by MCP clients l Published capability contract available. No trust telemetry is available yet. 37 GitHub stars reported by the source. Last updated 2/24/2026.
Freshness
Last checked 2/22/2026
Best For
Contract is available with explicit auth and schema references.
Not Ideal For
@mcp-it/fastify is not ideal for teams that need stronger public trust telemetry, lower setup complexity, or more explicit contract coverage before production rollout.
Evidence Sources Checked
editorial-content, capability-contract, runtime-metrics, public facts pack
🤖 Automatically generate MCP tools from your Fastify API routes. @mcp-it/fastify 🤖 Automatically generate MCP tools from your Fastify API routes. A Fastify plugin (@mcp-it/fastify) for the Model Context Protocol (MCP) that allows you to expose your Fastify routes as MCP tools. This enables AI assistants to interact with your API directly through the MCP protocol. Overview This plugin automatically discovers your Fastify routes and exposes them as tools consumable by MCP clients l
Public facts
7
Change events
1
Artifacts
0
Freshness
Feb 22, 2026
Published capability contract available. No trust telemetry is available yet. 37 GitHub stars reported by the source. Last updated 2/24/2026.
Trust score
Unknown
Compatibility
MCP
Freshness
Feb 22, 2026
Vendor
Adiramsalem
Artifacts
0
Benchmarks
0
Last release
0.1.3
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Published capability contract available. No trust telemetry is available yet. 37 GitHub stars reported by the source. Last updated 2/24/2026.
Setup snapshot
git clone https://github.com/AdirAmsalem/mcp-it.gitSetup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Adiramsalem
Protocol compatibility
MCP
Auth modes
mcp, api_key
Machine-readable schemas
OpenAPI or schema references published
Adoption signal
37 GitHub stars
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
bash
npm install @mcp-it/fastify # or yarn add @mcp-it/fastify # or pnpm add @mcp-it/fastify
typescript
import Fastify from "fastify";
import mcpPlugin from "@mcp-it/fastify";
const fastify = Fastify();
// Register the MCP plugin
await fastify.register(mcpPlugin, {
name: "My API",
description: "My API with MCP support",
});
// Define your routes with schemas and operation IDs
fastify.get(
"/users/:id",
{
schema: {
operationId: "get_user", // Used as the tool name
summary: "Get user by ID",
description: "Returns a user by their ID",
params: {
type: "object",
required: ["id"],
properties: {
id: { type: "number", description: "User ID" },
},
},
response: {
200: {
description: "Successful response",
type: "object",
properties: {
id: { type: "number" },
name: { type: "string" },
email: { type: "string" },
},
},
},
},
// Add MCP-specific config if needed, e.g.:
// config: {
// mcp: { hidden: true }
// }
},
async (request) => {
// Implementation...
const userId = (request.params as any).id;
// ... fetch user
return { id: userId, name: "Example User", email: "user@example.com" };
}
);
await fastify.listen({ port: 3000 });
console.log("MCP SSE server running at http://localhost:3000/mcp/sse");typescript
fastify.get(
"/some-route",
{
config: {
mcp: {
name: "custom_tool_name", // Override the default tool name
description: "Custom description for this tool", // Override the default description
},
},
// ... other route options
},
async (request, reply) => {
/* ... */
}
);typescript
import Fastify from "fastify";
import mcpPlugin from "@mcp-it/fastify";
import type { Server } from "@modelcontextprotocol/sdk/server/index.js";
const fastify = Fastify();
await fastify.register(mcpPlugin, {
/* options */
});
// Now you can access the MCP server instance
console.log("MCP Server:", fastify.mcpServer);
// Example: Add a custom handler (use with caution)
// fastify.mcpServer.setRequestHandler(...);
// ... rest of your application setup
await fastify.listen({ port: 3000 });text
http://localhost:3000/mcp/sse
json
{
"mcpServers": {
"my-fastify-api": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:3000/mcp/sse"]
}
}
}Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB MCP
Editorial quality
ready
🤖 Automatically generate MCP tools from your Fastify API routes. @mcp-it/fastify 🤖 Automatically generate MCP tools from your Fastify API routes. A Fastify plugin (@mcp-it/fastify) for the Model Context Protocol (MCP) that allows you to expose your Fastify routes as MCP tools. This enables AI assistants to interact with your API directly through the MCP protocol. Overview This plugin automatically discovers your Fastify routes and exposes them as tools consumable by MCP clients l
@mcp-it/fastify🤖 Automatically generate MCP tools from your Fastify API routes.
A Fastify plugin (@mcp-it/fastify) for the Model Context Protocol (MCP) that allows you to expose your Fastify routes as MCP tools. This enables AI assistants to interact with your API directly through the MCP protocol.
This plugin automatically discovers your Fastify routes and exposes them as tools consumable by MCP clients like Cursor or Claude. It leverages Fastify's schema system to generate complete tool definitions.
[!NOTE] While this package focuses specifically on Fastify, the
@mcp-itscope may host adapters for other Node.js frameworks (like Express, NestJS, etc.) in the future.
npm install @mcp-it/fastify
# or
yarn add @mcp-it/fastify
# or
pnpm add @mcp-it/fastify
import Fastify from "fastify";
import mcpPlugin from "@mcp-it/fastify";
const fastify = Fastify();
// Register the MCP plugin
await fastify.register(mcpPlugin, {
name: "My API",
description: "My API with MCP support",
});
// Define your routes with schemas and operation IDs
fastify.get(
"/users/:id",
{
schema: {
operationId: "get_user", // Used as the tool name
summary: "Get user by ID",
description: "Returns a user by their ID",
params: {
type: "object",
required: ["id"],
properties: {
id: { type: "number", description: "User ID" },
},
},
response: {
200: {
description: "Successful response",
type: "object",
properties: {
id: { type: "number" },
name: { type: "string" },
email: { type: "string" },
},
},
},
},
// Add MCP-specific config if needed, e.g.:
// config: {
// mcp: { hidden: true }
// }
},
async (request) => {
// Implementation...
const userId = (request.params as any).id;
// ... fetch user
return { id: userId, name: "Example User", email: "user@example.com" };
}
);
await fastify.listen({ port: 3000 });
console.log("MCP SSE server running at http://localhost:3000/mcp/sse");
| Option | Type | Default | Description |
| -------------------- | ---------- | ------------------------ | ------------------------------------------------------------------- |
| name | string | "Fastify MCP" | Name for the MCP server displayed to the client. |
| description | string | "MCP server for Fastify" | Description for the MCP server. |
| transportType | string | "sse" | Transport protocol to use: "sse" or "streamableHttp". |
| describeFullSchema | boolean | false | Include detailed input/output schemas and examples in descriptions. |
| skipHeadRoutes | boolean | true | Exclude HEAD routes from the generated MCP tools. |
| skipOptionsRoutes | boolean | true | Exclude OPTIONS routes from the generated MCP tools. |
| mountPath | string | "/mcp" | Base path prefix where MCP SSE and message endpoints are mounted. |
| filter | Function | undefined | Custom function (route: Route) => boolean for filtering. |
| addDebugEndpoint | boolean | false | Add a GET /<mountPath>/tools endpoint listing generated tools. |
config.mcp)You can add specific MCP configurations directly within a route's config object. The following options are available:
| Option | Type | Default | Description |
| ------------- | --------- | ----------------------------- | ----------------------------------- |
| hidden | boolean | false | Hide this route from the MCP Server |
| name | string | operationId or method_url | Override the default tool name |
| description | string | Route's schema description | Override the tool description |
Example usage:
fastify.get(
"/some-route",
{
config: {
mcp: {
name: "custom_tool_name", // Override the default tool name
description: "Custom description for this tool", // Override the default description
},
},
// ... other route options
},
async (request, reply) => {
/* ... */
}
);
This plugin decorates the Fastify instance with the underlying MCP Server instance from @modelcontextprotocol/sdk. You can access it via fastify.mcpServer after the plugin has been registered.
This might be useful for advanced scenarios, such as:
import Fastify from "fastify";
import mcpPlugin from "@mcp-it/fastify";
import type { Server } from "@modelcontextprotocol/sdk/server/index.js";
const fastify = Fastify();
await fastify.register(mcpPlugin, {
/* options */
});
// Now you can access the MCP server instance
console.log("MCP Server:", fastify.mcpServer);
// Example: Add a custom handler (use with caution)
// fastify.mcpServer.setRequestHandler(...);
// ... rest of your application setup
await fastify.listen({ port: 3000 });
See the examples directory for complete working examples demonstrating various features.
In Cursor settings (Settings -> MCP), add a new SSE connection with the URL:
http://localhost:3000/mcp/sse
(Replace localhost:3000 with your server's address and mcp with your mountPath if customized).
Use mcp-proxy to bridge between Claude Desktop (which expects stdio) and the SSE endpoint.
Add the following to your Claude Desktop MCP config file (claude_desktop_config.json):
{
"mcpServers": {
"my-fastify-api": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:3000/mcp/sse"]
}
}
}
(Replace localhost:3000 with your server's address and mcp with your mountPath if customized).
Alternatively, you can use the Streamable HTTP endpoint if your client supports it (Cursor might require configuration or proxying for non-SSE endpoints).
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
ready
Auth
mcp, api_key
Streaming
Yes
Data region
global
Protocol support
Requires: mcp, lang:typescript, streaming
Forbidden: none
Guardrails
Operational confidence: medium
curl -s "https://xpersona.co/api/v1/agents/mcp-adiramsalem-mcp-it/snapshot"
curl -s "https://xpersona.co/api/v1/agents/mcp-adiramsalem-mcp-it/contract"
curl -s "https://xpersona.co/api/v1/agents/mcp-adiramsalem-mcp-it/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
80
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
74
Expose OpenAPI definition endpoints as MCP tools using the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Rank
72
An actix_web backend for the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Contract JSON
{
"contractStatus": "ready",
"authModes": [
"mcp",
"api_key"
],
"requires": [
"mcp",
"lang:typescript",
"streaming"
],
"forbidden": [],
"supportsMcp": true,
"supportsA2a": false,
"supportsStreaming": true,
"inputSchemaRef": "https://github.com/AdirAmsalem/mcp-it#input",
"outputSchemaRef": "https://github.com/AdirAmsalem/mcp-it#output",
"dataRegion": "global",
"contractUpdatedAt": "2026-02-24T19:46:32.241Z",
"sourceUpdatedAt": "2026-02-24T19:46:32.241Z",
"freshnessSeconds": 4422193
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/mcp-adiramsalem-mcp-it/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/mcp-adiramsalem-mcp-it/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/mcp-adiramsalem-mcp-it/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/mcp-adiramsalem-mcp-it/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-adiramsalem-mcp-it/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-adiramsalem-mcp-it/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"MCP"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_MCP",
"generatedAt": "2026-04-17T00:09:45.260Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "MCP",
"type": "protocol",
"support": "supported",
"confidenceSource": "contract",
"notes": "Confirmed by capability contract"
},
{
"key": "mcp",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "modelcontextprotocol",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "fastify",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:MCP|supported|contract capability:mcp|supported|profile capability:modelcontextprotocol|supported|profile capability:fastify|supported|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "MCP",
"href": "https://xpersona.co/api/v1/agents/mcp-adiramsalem-mcp-it/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-adiramsalem-mcp-it/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:46:32.241Z",
"isPublic": true
},
{
"factKey": "auth_modes",
"category": "compatibility",
"label": "Auth modes",
"value": "mcp, api_key",
"href": "https://xpersona.co/api/v1/agents/mcp-adiramsalem-mcp-it/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-adiramsalem-mcp-it/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:46:32.241Z",
"isPublic": true
},
{
"factKey": "schema_refs",
"category": "artifact",
"label": "Machine-readable schemas",
"value": "OpenAPI or schema references published",
"href": "https://github.com/AdirAmsalem/mcp-it#input",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-adiramsalem-mcp-it/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:46:32.241Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Adiramsalem",
"href": "https://github.com/AdirAmsalem/mcp-it#readme",
"sourceUrl": "https://github.com/AdirAmsalem/mcp-it#readme",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-24T19:43:14.176Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "37 GitHub stars",
"href": "https://github.com/AdirAmsalem/mcp-it",
"sourceUrl": "https://github.com/AdirAmsalem/mcp-it",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-24T19:43:14.176Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/mcp-adiramsalem-mcp-it/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-adiramsalem-mcp-it/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to @mcp-it/fastify and adjacent AI workflows.