MCP Starter
An agent-ready TypeScript template for building Model Context Protocol (MCP) servers with standardized discovery flows and permission-aware tools. It provides pre-configured core and operable profiles to help developers quickly implement, test, and distribute production-ready MCP services.
README
MCP Starter
Agent-ready TypeScript MCP starter with two profiles:
core: minimal transport/runtime profile with one tool, one fixed resource, and one promptoperable: recommended default profile with discovery resources, resource templates, usage guidance, runtime defaults, and permission-aware examples
Commands
npm run dev: start the operable server profile with stdio transportnpx tsx src/index.ts: run directly from source mode (requires correct cwd)npm run catalog:generate: rebuild generated catalog artifacts from docs manifest + source seedsnpm run build: regenerate catalogs and build the package entrypointnpm run typecheck: run TypeScript validationnpm test: run deterministic unit testsnpm run protocol:sync: refresh the MCP protocol docs underdocs/protocolnpm run inspect: launch MCP Inspector against the local source servernpm run inspect:help: show MCP Inspector CLI optionsnpm run pack:dry-run: verify package contents and publish surface
Implementation Plan
The detailed implementation and hardening plan lives in OPERABLE_MCP_IMPLEMENTATION_PLAN.md.
Profiles
Core profile
Available through createCoreMcpServer() in src/server.ts.
Includes:
- tool:
echo - resource:
app://status - prompt:
summarize
Operable profile
Default profile through createMcpServer() and startServer().
Adds:
- fixed resources:
app://indexapp://catalog/toolsapp://catalog/resourcesapp://catalog/promptsapp://runtime/defaultsapp://usage
- resource templates:
app://doc/{slug}app://schema/{id}app://example/{name}
- prompt:
server_usage_guide
- permission-aware tool:
admin_echo
Discovery flow for agents
Recommended order:
- Read
app://index - Read
app://catalog/tools - Read
app://runtime/defaults - Read
app://catalog/resourcesandapp://catalog/prompts - Use
app://usageor promptserver_usage_guidebefore non-trivial calls
This prevents unnecessary discovery when runtime defaults already exist.
Runtime defaults
The operable profile exposes environment-derived defaults through app://runtime/defaults.
Supported environment variables:
MCP_DEFAULT_ACCOUNT_SIDMCP_DEFAULT_SERVICE_PROVIDER_SIDMCP_DEFAULT_REGIONMCP_DEFAULT_PAGEMCP_DEFAULT_COUNTMCP_PERMISSION_LEVEL(none,read,write,admin)MCP_DOCS_DIR
Behavior:
- if
MCP_DOCS_DIRpoints to a valid docs corpus,app://doc/{slug}reads markdown files from that location - if not, docs templates stay discoverable but return a deterministic “docs unavailable” response
Permission model
The starter demonstrates permission-first execution in admin_echo:
- the tool remains visible in discovery
- permission is checked before endpoint-specific validation
- blocked calls return a semantic permission error instead of a premature schema failure
This models the “visible vs usable” distinction real agent-facing servers need.
Docs-derived generated artifacts
Generated modules live in src/generated/:
They are rebuilt by tools/generate-catalog.ts using:
- source seeds in catalog-seed.ts
- the synced protocol docs manifest in docs/protocol/manifest.json
Inspector / DevTools
This starter includes integration with MCP Inspector.
- Run
npm run inspect - Open the Inspector URL shown in the terminal
- Inspect tools, fixed resources, resource templates, prompts, and ping behavior
Packaging and distribution
This package now includes:
- a
binentry (mcp-starter) - a constrained
fileswhitelist - repository, bugs, homepage, and license metadata
- a publish workflow template at publish.yml
- a publication checklist at publishing.md
Recommended execution modes:
- Source mode:
npx tsx src/index.ts(local development, cwd-dependent) - Package mode:
npx -y mcp-starter(stable client-facing command once published)
Skill
The reusable implementation workflow lives in skills/mcp-builder/SKILL.md.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.