Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
TypeScript template for MCP servers with declarative tools/resources, pluggable auth, multi-backend storage, OpenTelemetry observability, and Cloudflare Workers support. <div align="center"> <h1>mcp-ts-template</h1> <p><b>TypeScript template for building Model Context Protocol (MCP) servers. Ships with declarative tools/resources, pluggable auth, multi-backend storage, OpenTelemetry observability, and first-class support for both local and edge (Cloudflare Workers) runtimes.</b> <div>7 Tools • 2 Resources • 1 Prompt</div> </p> </div> <div align="center"> $1 $1 $1 $1 $1 $1 $1 $1 </div Capability contract not published. No trust telemetry is available yet. 117 GitHub stars reported by the source. Last updated 2/25/2026.
Freshness
Last checked 2/25/2026
Best For
mcp-ts-template is best for agent, ai, ai-agent workflows where MCP compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB MCP, runtime-metrics, public facts pack
TypeScript template for MCP servers with declarative tools/resources, pluggable auth, multi-backend storage, OpenTelemetry observability, and Cloudflare Workers support. <div align="center"> <h1>mcp-ts-template</h1> <p><b>TypeScript template for building Model Context Protocol (MCP) servers. Ships with declarative tools/resources, pluggable auth, multi-backend storage, OpenTelemetry observability, and first-class support for both local and edge (Cloudflare Workers) runtimes.</b> <div>7 Tools • 2 Resources • 1 Prompt</div> </p> </div> <div align="center"> $1 $1 $1 $1 $1 $1 $1 $1 </div
Public facts
5
Change events
1
Artifacts
0
Freshness
Feb 25, 2026
Capability contract not published. No trust telemetry is available yet. 117 GitHub stars reported by the source. Last updated 2/25/2026.
Trust score
Unknown
Compatibility
MCP
Freshness
Feb 25, 2026
Vendor
Cyanheads
Artifacts
0
Benchmarks
0
Last release
2.9.6
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. 117 GitHub stars reported by the source. Last updated 2/25/2026.
Setup snapshot
git clone https://github.com/cyanheads/mcp-ts-template.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
Cyanheads
Protocol compatibility
MCP
Adoption signal
117 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
text
┌─────────────────────────────────────────────────────────┐
│ MCP Client (Claude Code, ChatGPT, etc.) │
└────────────────────┬────────────────────────────────────┘
│ JSON-RPC 2.0
▼
┌─────────────────────────────────────────────────────────┐
│ MCP Server (Tools, Resources) │
│ 📖 [MCP Server Guide](src/mcp-server/) │
└────────────────────┬────────────────────────────────────┘
│ Dependency Injection
▼
┌─────────────────────────────────────────────────────────┐
│ Dependency Injection Container │
│ 📦 [Container Guide](src/container/) │
└────────────────────┬────────────────────────────────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Services │ │ Storage │ │ Utilities│
│ 🔌 [→] │ │ 💾 [→] │ │ 🛠️ [→] │
└──────────┘ └──────────┘ └──────────┘
[→]: src/services/ [→]: src/storage/ [→]: src/utils/json
{
"mcpServers": {
"mcp-ts-template": {
"type": "stdio",
"command": "bunx",
"args": ["mcp-ts-template@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info",
"STORAGE_PROVIDER_TYPE": "filesystem",
"STORAGE_FILESYSTEM_PATH": "/path/to/your/storage"
}
}
}
}sh
git clone https://github.com/cyanheads/mcp-ts-template.git
sh
cd mcp-ts-template
sh
bun install
sh
# One-time build bun rebuild # Run the built server bun start:http # or bun start:stdio
Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB MCP
Editorial quality
ready
TypeScript template for MCP servers with declarative tools/resources, pluggable auth, multi-backend storage, OpenTelemetry observability, and Cloudflare Workers support. <div align="center"> <h1>mcp-ts-template</h1> <p><b>TypeScript template for building Model Context Protocol (MCP) servers. Ships with declarative tools/resources, pluggable auth, multi-backend storage, OpenTelemetry observability, and first-class support for both local and edge (Cloudflare Workers) runtimes.</b> <div>7 Tools • 2 Resources • 1 Prompt</div> </p> </div> <div align="center"> $1 $1 $1 $1 $1 $1 $1 $1 </div
McpError system ensures consistent, structured error responses across the server.none, jwt, or oauth modes.in-memory, filesystem, Supabase, Cloudflare D1/KV/R2) without changing business logic. Features secure opaque cursor pagination, parallel batch operations, and comprehensive validation.Token<T> phantom branding — zero external dependencies, fully type-safe resolution.This template follows a modular, domain-driven architecture with clear separation of concerns:
┌─────────────────────────────────────────────────────────┐
│ MCP Client (Claude Code, ChatGPT, etc.) │
└────────────────────┬────────────────────────────────────┘
│ JSON-RPC 2.0
▼
┌─────────────────────────────────────────────────────────┐
│ MCP Server (Tools, Resources) │
│ 📖 [MCP Server Guide](src/mcp-server/) │
└────────────────────┬────────────────────────────────────┘
│ Dependency Injection
▼
┌─────────────────────────────────────────────────────────┐
│ Dependency Injection Container │
│ 📦 [Container Guide](src/container/) │
└────────────────────┬────────────────────────────────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Services │ │ Storage │ │ Utilities│
│ 🔌 [→] │ │ 💾 [→] │ │ 🛠️ [→] │
└──────────┘ └──────────┘ └──────────┘
[→]: src/services/ [→]: src/storage/ [→]: src/utils/
Key Modules:
💡 Tip: Each module has its own comprehensive README with architecture diagrams, usage examples, and best practices. Click the links above to dive deeper!
This template includes working examples to get you started.
| Tool | Description |
| :---------------------------------- | :----------------------------------------------------------------------- |
| template_echo_message | Echoes a message back with optional formatting and repetition. |
| template_cat_fact | Fetches a random cat fact from an external API. |
| template_madlibs_elicitation | Demonstrates elicitation by asking for words to complete a story. |
| template_code_review_sampling | Uses the LLM service to perform a simulated code review. |
| template_image_test | Returns a test image as a base64-encoded data URI. |
| template_async_countdown | Demonstrates MCP Tasks API with an async countdown timer (experimental). |
| template_data_explorer | Generates sample sales data with an interactive explorer UI (MCP Apps). |
| Resource | URI | Description |
| :--------------------- | :------------------------------------- | :---------------------------------------------------------- |
| echo | echo://{message} | A simple resource that echoes back a message. |
| data-explorer-ui | ui://template-data-explorer/app.html | Interactive HTML app for the data explorer tool (MCP Apps). |
| Prompt | Description |
| :---------------- | :--------------------------------------------------------------- |
| code-review | A structured prompt for guiding an LLM to perform a code review. |
Add the following to your MCP client configuration file.
{
"mcpServers": {
"mcp-ts-template": {
"type": "stdio",
"command": "bunx",
"args": ["mcp-ts-template@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info",
"STORAGE_PROVIDER_TYPE": "filesystem",
"STORAGE_FILESYSTEM_PATH": "/path/to/your/storage"
}
}
}
}
git clone https://github.com/cyanheads/mcp-ts-template.git
cd mcp-ts-template
bun install
All configuration is centralized and validated at startup in src/config/index.ts. Key environment variables in your .env file include:
| Variable | Description | Default |
| :------------------------ | :--------------------------------------------------------------------------------------------------------- | :----------- |
| MCP_TRANSPORT_TYPE | The transport to use: stdio or http. | stdio |
| MCP_HTTP_PORT | The port for the HTTP server. | 3010 |
| MCP_HTTP_HOST | The hostname for the HTTP server. | 127.0.0.1 |
| MCP_LOG_LEVEL | Logging level (fatal, error, warn, info, debug, trace, silent). | debug |
| MCP_AUTH_MODE | Authentication mode: none, jwt, or oauth. | none |
| MCP_AUTH_SECRET_KEY | Required for jwt auth mode. A 32+ character secret. | (none) |
| OAUTH_ISSUER_URL | Required for oauth auth mode. URL of the OIDC provider. | (none) |
| STORAGE_PROVIDER_TYPE | Storage backend: in-memory, filesystem, supabase, cloudflare-d1, cloudflare-kv, cloudflare-r2. | in-memory |
| STORAGE_FILESYSTEM_PATH | Path to the storage directory (for filesystem provider). | ./.storage |
| SUPABASE_URL | Required for supabase storage. Your Supabase project URL. | (none) |
| SUPABASE_ANON_KEY | Required for supabase storage. Your Supabase anon key. | (none) |
| OTEL_ENABLED | Set to true to enable OpenTelemetry. | false |
| OPENROUTER_API_KEY | API key for OpenRouter LLM service. | (none) |
none (default), jwt (requires MCP_AUTH_SECRET_KEY), or oauth (requires OAUTH_ISSUER_URL and OAUTH_AUDIENCE).logic functions with withToolAuth([...]) or withResourceAuth([...]) to enforce scope checks. Scope checks are bypassed for developer convenience when auth mode is none.StorageService provides a consistent API for persistence. Never access fs or other storage SDKs directly from tool logic.in-memory. Node-only providers include filesystem. Edge-compatible providers include supabase, cloudflare-kv, and cloudflare-r2.StorageService requires context.tenantId. This is automatically propagated from the tid claim in a JWT when auth is enabled.getMany(), setMany(), deleteMany()RequestContext.OTEL_ENABLED=true and configure OTLP endpoints. Traces, metrics (duration, payload sizes), and errors are automatically captured for every tool call.Build and run the production version:
# One-time build
bun rebuild
# Run the built server
bun start:http
# or
bun start:stdio
Run checks and tests:
bun devcheck # Lints, formats, type-checks, and more
bun run test # Runs the test suite (Do not use 'bun test' directly as it may not work correctly)
bun build:worker
bun deploy:dev
bun deploy:prod
Note: The
wrangler.tomlfile is pre-configured to enablenodejs_compatfor best results.
| Directory | Purpose & Contents | Guide |
| :------------------------------------- | :----------------------------------------------------------------------------------- | :----------------------------------- |
| src/mcp-server/tools/definitions | Your tool definitions (*.tool.ts). This is where you add new capabilities. | 📖 MCP Guide |
| src/mcp-server/resources/definitions | Your resource definitions (*.resource.ts). This is where you add new data sources. | 📖 MCP Guide |
| src/mcp-server/transports | Implementations for HTTP and STDIO transports, including auth middleware. | 📖 MCP Guide |
| src/storage | The StorageService abstraction and all storage provider implementations. | 💾 Storage Guide |
| src/services | Integrations with external services (e.g., the default OpenRouter LLM provider). | 🔌 Services Guide |
| src/container | Dependency injection container registrations and tokens. | 📦 Container Guide |
| src/utils | Core utilities for logging, error handling, performance, security, and telemetry. | |
| src/config | Environment variable parsing and validation with Zod. | |
| tests/ | Unit and integration tests, mirroring the src/ directory structure. | |
Each major module includes comprehensive documentation with architecture diagrams, usage examples, and best practices:
MCP Server Guide - Complete guide to building MCP tools and resources
Container Guide - Typed dependency injection container
Services Guide - External service integration patterns
Storage Guide - Abstracted persistence layer
For a strict set of rules when using this template with an AI agent, please refer to AGENTS.md. Key principles include:
try/catch in your tool/resource logic. Throw an McpError instead.elicitInput function from the SdkContext to ask the user for it.RequestContext object through your call stack.index.ts barrel files.bun run dev:stdio or bun run dev:http.bun run build:worker and deploy with Wrangler.OTEL_ENABLED=true in your .env file.docs/publishing-mcp-server-registry.md.Issues and pull requests are welcome! If you plan to contribute, please run the local checks and tests before submitting your PR.
bun run devcheck
bun test
This project is licensed under the Apache 2.0 License. See the LICENSE file for details.
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://xpersona.co/api/v1/agents/mcp-cyanheads-mcp-ts-template/snapshot"
curl -s "https://xpersona.co/api/v1/agents/mcp-cyanheads-mcp-ts-template/contract"
curl -s "https://xpersona.co/api/v1/agents/mcp-cyanheads-mcp-ts-template/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
Do not use if
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": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/mcp-cyanheads-mcp-ts-template/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/mcp-cyanheads-mcp-ts-template/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/mcp-cyanheads-mcp-ts-template/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/mcp-cyanheads-mcp-ts-template/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-cyanheads-mcp-ts-template/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-cyanheads-mcp-ts-template/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:06:19.354Z"
}
},
"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": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
},
{
"key": "agent",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "ai",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "ai-agent",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "authentication",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "cloudflare-workers",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "declarative-tools",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "dependency-injection",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "error-handling",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "hono",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "llm-integration",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "mcp",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "model-context-protocol",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "mcp-server",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "elicitation",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "observability",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "opentelemetry",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "otel",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "server-template",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "template",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "typescript",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "zod",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "cli",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:MCP|unknown|profile capability:agent|supported|profile capability:ai|supported|profile capability:ai-agent|supported|profile capability:authentication|supported|profile capability:cloudflare-workers|supported|profile capability:declarative-tools|supported|profile capability:dependency-injection|supported|profile capability:error-handling|supported|profile capability:hono|supported|profile capability:llm-integration|supported|profile capability:mcp|supported|profile capability:model-context-protocol|supported|profile capability:mcp-server|supported|profile capability:elicitation|supported|profile capability:observability|supported|profile capability:opentelemetry|supported|profile capability:otel|supported|profile capability:server-template|supported|profile capability:template|supported|profile capability:typescript|supported|profile capability:zod|supported|profile capability:cli|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": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Cyanheads",
"href": "https://github.com/cyanheads/mcp-ts-template#readme",
"sourceUrl": "https://github.com/cyanheads/mcp-ts-template#readme",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-25T03:22:10.119Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "MCP",
"href": "https://xpersona.co/api/v1/agents/mcp-cyanheads-mcp-ts-template/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-cyanheads-mcp-ts-template/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-02-25T03:22:10.119Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "117 GitHub stars",
"href": "https://github.com/cyanheads/mcp-ts-template",
"sourceUrl": "https://github.com/cyanheads/mcp-ts-template",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-25T03:22:10.119Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/mcp-cyanheads-mcp-ts-template/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-cyanheads-mcp-ts-template/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-ts-template and adjacent AI workflows.