Writing Skills
writing-skills
效率与协作技能,来自 obra/superpowers,查看原文获取完整用途和操作说明。
mcp-authoring【部署与运维】Creates MCP (Model Context Protocol) servers for Claude Code. Covers TypeScript implementation with MCP SDK, tool definitions, transport types, metadata.json for dev-suite, and deployment patterns. Follows official MCP specification. USE WHEN: user mentions "MCP server", "create MCP", "model context protocol", "MCP tool", "external tool", "mcp-serve…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: mcp-authoring description: | Creates MCP (Model Context Protocol) servers for Claude Code. Covers TypeScript implementation with MCP SDK, tool definitions, transport types, metadata.json for dev-suite, and deployment patterns. Follows official MCP specification.
USE WHEN: user mentions "MCP server", "create MCP", "model context protocol", "MCP tool", "external tool", "mcp-servers/", "metadata.json", "tool integration"
skill-authoring; creating hooks - use hook-authoring
allowed-tools: Read, Grep, Glob, Write, EditMCP servers expose tools, resources, and prompts to Claude via the Model Context Protocol. They run as separate processes (stdio) or HTTP endpoints that Claude communicates with.
mcp-servers/{server-name}/
├── package.json # @dev-suite/{name}, main: dist/index.js
├── tsconfig.json # TypeScript config
├── metadata.json # Server metadata for dev-suite dashboard
└── src/
└── index.ts # Server implementation
See quick-ref/typescript-template.md for the complete starter template.
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { z } from 'zod';
const server = new McpServer({
name: 'my-server',
version: '1.0.0',
});
// Define a tool
server.tool(
'search_docs', // Tool name
'Search documentation by query', // Description
{ query: z.string(), limit: z.number().optional().default(10) }, // Input schema
async ({ query, limit }) => { // Handler
const results = await searchDocumentation(query, limit);
return {
content: [{ type: 'text', text: JSON.stringify(results, null, 2) }],
};
}
);
// Start server
const transport = new StdioServerTransport();
await server.connect(transport);
search_docs not search)content array with type: 'text'See quick-ref/metadata-schema.md for the complete schema.
{
"name": "my-server",
"description": "Full description of what this server does",
"shortDescription": "Brief one-liner",
"category": "development",
"tools": [
{
"name": "search_docs",
"description": "Search documentation by query"
}
],
"envVars": [
{
"name": "API_KEY",
"description": "API key for the service",
"required": true
}
],
"recommendedFor": ["react-expert", "typescript-expert"],
"detectedWhen": ["react", "typescript"]
}
| Transport | When to use | Config |
|---|---|---|
stdio | Local process, development, CLI tools | command + args in .mcp.json |
http | Cloud services, shared servers | URL endpoint |
sse | Legacy (deprecated) | URL endpoint |
{
"mcpServers": {
"my-server": {
"command": "node",
"args": ["path/to/dist/index.js"],
"env": { "API_KEY": "${API_KEY}" }
}
}
}
Environment variables: ${VAR} syntax, ${VAR:-default} for defaults.
mcp-servers/{name}/ with package.json (@dev-suite/{name})metadata.json with tools, envVars, recommendedFor, detectedWhensrc/index.ts with MCP server implementationtsconfig.jsonmcp-servers/package.json workspaces arraycd mcp-servers && npm install && npm run build| Anti-Pattern | Fix |
|---|---|
| Huge tool output (> 10K tokens) | Paginate, filter, or summarize results |
| No input validation | Use Zod schemas for all inputs |
| Blocking operations without timeout | Add timeouts to external calls |
| Hardcoded credentials | Use env vars via process.env |
| Tool names that are too generic | Use specific, descriptive names |
npm run build