CtrlK
BlogDocsLog inGet started
Tessl Logo

nitinjain999/platform-skills

Production-grade platform engineering handbook — Kubernetes, Terraform, Flux CD, GitHub Actions, AWS, and more.

67

Quality

84%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

README.mdexamples/mcp/

Status: Stable

MCP Examples

Production-ready MCP (Model Context Protocol) server implementations.

Examples

ExampleTransportLanguageDescription
docs-server/stdioTypeScriptSearch and retrieve internal documentation

Quick Start

cd docs-server

# Install dependencies
npm install

# Build
npm run build

# Test with MCP Inspector (interactive browser UI)
npx @modelcontextprotocol/inspector node dist/index.js

# Or run directly via Claude Code
claude mcp add docs-server -- node /path/to/docs-server/dist/index.js

What docs-server Provides

CapabilityNameDescription
Toolsearch_docsSearch documents by keyword, returns matching titles and excerpts
Toolget_docRetrieve full document content by ID
Resourcedocs://indexList all available documents

Key Patterns

Tool with Zod input validation

server.tool(
  "search_docs",
  "Search internal documentation by keyword",
  { query: z.string().min(1).describe("Search query"), limit: z.number().int().min(1).max(50).default(10) },
  async ({ query, limit }) => {
    const results = documents.filter(d => d.body.toLowerCase().includes(query.toLowerCase())).slice(0, limit);
    return { content: [{ type: "text", text: JSON.stringify(results) }] };
  }
);

Resource handler

server.resource("docs://index", "List all documents", async (uri) => ({
  contents: [{ uri: uri.href, text: JSON.stringify(documents.map(d => ({ id: d.id, title: d.title }))) }]
}));

stdio transport (for Claude Code integration)

const transport = new StdioServerTransport();
await server.connect(transport);

SSE transport (for remote/browser access)

// Transport must be created inside the /sse handler
app.get("/sse", async (req, res) => {
  const transport = new SSEServerTransport("/message", res);
  transports.set(transport.sessionId, transport);
  await server.connect(transport);
});
app.post("/message", async (req, res) => {
  const transport = transports.get(req.query.sessionId as string);
  await transport?.handlePostMessage(req, res);
});

Extending the Example

Replace the in-memory documents array with a real backend:

// Elasticsearch
const results = await esClient.search({ index: "docs", query: { match: { body: query } } });

// Postgres full-text search
const results = await db.query("SELECT * FROM docs WHERE to_tsvector(body) @@ plainto_tsquery($1)", [query]);

See Also

  • references/mcp.md — protocol fundamentals, TypeScript/Python SDKs, schema design, transports, security, deployment
  • /platform-skills:mcp — scaffold a new MCP server, review an existing one, or debug transport/protocol issues

examples

BEFORE_AFTER.md

CHANGELOG.md

CODE_OF_CONDUCT.md

COMMANDS.md

CONTRIBUTING.md

EDITOR_INTEGRATIONS.md

GETTING_STARTED.md

HOW_IT_WORKS.md

install.sh

INSTALLATION.md

LAUNCH.md

PROMPTS.md

QUICKSTART.md

README.md

renovate.json

SECURITY.md

SKILL.md

tessl.json

tile.json