MCP Server Developer
Expert implementation of Model Context Protocol (MCP) servers for Claude Desktop integration. This skill provides comprehensive guidance for building production-ready MCP servers with TypeScript, including architecture design, endpoint implementation, database integration, telemetry tracking, and distribution via npx.
Core Competencies
1. MCP Server Architecture
- Scaffold Generation: TypeScript project setup with proper MCP protocol structure
- Server Configuration: MCP protocol compliance, JSON-RPC handling, stdio transport
- Endpoint Design: RESTful-style resource and tool endpoints following MCP spec
- Type Safety: Strict TypeScript types for requests, responses, and schemas
- Error Handling: Comprehensive error catching with proper MCP error responses
2. Database Integration
- D1 SQLite Setup: Schema design optimized for edge deployment
- Query Optimization: <500ms latency targets for all database operations
- FTS5 Search: Full-text search implementation for model discovery
- Data Modeling: Efficient table structures with proper indexing
- Migration Scripts: Version-controlled schema evolution
3. Telemetry & Analytics
- Event Tracking: Structured logging for install, usage, and performance metrics
- Latency Monitoring: Request timing with percentile tracking (p50, p95, p99)
- User Analytics: Privacy-respecting usage patterns without PII
- Error Reporting: Structured error logging for debugging
- Success Metrics: WAU (Weekly Active Users) and engagement tracking
4. NPX Distribution
- Package Configuration: package.json with proper bin entries for npx execution
- Version Management: Semantic versioning with changelog automation
- Publishing Workflow: npm registry deployment with CI/CD integration
- Update Strategy: Non-breaking updates with deprecation notices
- Installation Testing: Cross-platform verification (macOS, Windows, Linux)
Implementation Guidelines
Phase 0: Server Scaffold (Week 1)
Initialize TypeScript Project
npm init -y
npm install --save-dev typescript @types/node
npx tsc --init
MCP Server Setup
- Install MCP SDK:
npm install @modelcontextprotocol/sdk
- Create server entry point (
src/index.ts)
- Implement stdio transport handler
- Add basic resource/tool endpoints
Type Definitions
interface MCPServer {
name: string;
version: string;
resources: Resource[];
tools: Tool[];
}
interface Resource {
uri: string;
name: string;
description: string;
mimeType?: string;
}
interface Tool {
name: string;
description: string;
inputSchema: JSONSchema;
}
Phase 1: Core Functionality (Week 2)
Database Schema
CREATE TABLE mental_models (
id TEXT PRIMARY KEY,
code TEXT UNIQUE NOT NULL,
transformation_class TEXT NOT NULL,
name TEXT NOT NULL,
description TEXT,
use_cases JSON,
difficulty_tier INTEGER,
prerequisites JSON,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE VIRTUAL TABLE models_fts USING fts5(
code, name, description, use_cases
);
Endpoint Implementation
- GET resource endpoints (models list, transformations)
- POST tool endpoints (analyze, decompose, synthesize)
- Error handling with MCP-compliant responses
- Input validation with Zod or similar
Transformation Logic
- Perspective (P): Multi-viewpoint analysis
- Inversion (IN): Reverse assumption mapping
- Composition (CO): Integration synthesis
- Decomposition (DE): Component breakdown
- Recursion (RE): Feedback loop identification
- Meta-Systems (SY): Systems-of-systems coordination
Phase 2: Documentation & Examples (Week 3)
Quick Start Guide (5-minute setup)
# Quick Start
1. Install via npx:
```bash
npx @hummbl/mcp-server
Configure Claude Desktop:
Add to claude_desktop_config.json:
{
"mcpServers": {
"hummbl": {
"command": "npx",
"args": ["@hummbl/mcp-server"]
}
}
}
Test in Claude:
"Use the perspective transformation on this problem: [your problem]"
Runnable Examples
- Example 1: Code analysis with decomposition
- Example 2: Strategy synthesis with composition
- Example 3: Decision making with perspective + inversion
Troubleshooting Guide
- Installation failures (permissions, npm config)
- Claude Desktop connection issues
- Latency/performance problems
- Error message reference
Phase 3: Distribution & Testing (Week 4)
NPX Setup
{
"name": "@hummbl/mcp-server",
"version": "1.0.0",
"bin": {
"hummbl-mcp": "./dist/index.js"
},
"files": ["dist", "README.md", "LICENSE"],
"publishConfig": {
"access": "public"
}
}
CI/CD Pipeline
- GitHub Actions for automated testing
- Automated npm publishing on release tags
- Cross-platform binary testing
- Documentation deployment
Beta Testing
- 3-5 beta testers minimum
- Structured feedback collection
- Performance benchmarking
- Edge case identification
Quality Gates
Functional Requirements ✅
Documentation Requirements ✅
Adoption Requirements ✅
MCP Protocol Compliance
Required Capabilities
- Resources: Read-only data access (models, transformations)
- Tools: Interactive operations (analyze, decompose, synthesize)
- Prompts: Pre-defined workflows (optional in Phase 0)
Transport Layer
- stdio: Standard input/output for Claude Desktop
- JSON-RPC 2.0: All requests/responses follow spec
- Error Codes: Proper HTTP-style error codes
Security Best Practices
- Input sanitization for all user-provided data
- Rate limiting to prevent abuse
- No external network calls without explicit permission
- Minimal permissions model
- Audit logging for all operations
Performance Optimization
Latency Targets
- p50: <100ms for all endpoints
- p95: <500ms for database queries
- p99: <1000ms for complex transformations
Optimization Strategies
- Database: Index all frequently queried columns
- Caching: In-memory LRU cache for hot data
- Lazy Loading: Load resources only when needed
- Batch Operations: Group similar queries
- Connection Pooling: Reuse database connections
Telemetry Schema
interface TelemetryEvent {
event_name: 'mcp_install' | 'mcp_success_run' | 'api_call' | 'doc_view';
user_id: string; // Anonymized hash
ts: string; // ISO 8601
meta: {
client?: string; // Claude Desktop version
version?: string; // MCP server version
model?: string; // e.g., "CO4"
lat_ms?: number; // Latency in milliseconds
endpoint?: string; // Endpoint called
status?: number; // HTTP-style status code
};
}
Distribution Checklist
Pre-Publication ✅
MCP Directory Submission ✅
Post-Publication ✅
Common Pitfalls & Solutions
Issue: Claude Desktop doesn't detect server
Solution: Verify stdio transport is properly initialized and JSON-RPC responses are formatted correctly.
Issue: High latency (>1s)
Solution: Add database indexes, implement caching, or optimize query complexity.
Issue: Installation fails on Windows
Solution: Test with cross-platform paths, avoid shell-specific commands, use cross-env for environment variables.
Issue: Breaking changes between versions
Solution: Follow semantic versioning strictly, maintain backwards compatibility, provide migration guides.
Examples
Example 1: Minimal MCP Server
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
const server = new Server({
name: 'hummbl-mcp-server',
version: '1.0.0',
}, {
capabilities: {
resources: {},
tools: {},
},
});
// Register resource: List mental models
server.setRequestHandler('resources/list', async () => ({
resources: [
{
uri: 'hummbl://models',
name: 'Mental Models',
description: 'BASE120 mental model collection',
mimeType: 'application/json',
},
],
}));
// Register tool: Analyze with perspective transformation
server.setRequestHandler('tools/call', async (request) => {
if (request.params.name === 'analyze-perspective') {
const { text } = request.params.arguments;
// Transformation logic here
return {
content: [{
type: 'text',
text: `Perspective analysis: ${text}`,
}],
};
}
});
// Start server
const transport = new StdioServerTransport();
await server.connect(transport);
Example 2: Database Integration
import Database from 'better-sqlite3';
const db = new Database('hummbl.db');
// Initialize schema
db.exec(`
CREATE TABLE IF NOT EXISTS mental_models (
id TEXT PRIMARY KEY,
code TEXT UNIQUE NOT NULL,
transformation_class TEXT NOT NULL,
name TEXT NOT NULL,
description TEXT
);
CREATE INDEX IF NOT EXISTS idx_transformation
ON mental_models(transformation_class);
`);
// Query with prepared statement
const getModelsByTransformation = db.prepare(`
SELECT * FROM mental_models
WHERE transformation_class = ?
ORDER BY code
`);
const perspectiveModels = getModelsByTransformation.all('P');
Example 3: Telemetry Logging
function logTelemetry(event: TelemetryEvent) {
const logEntry = {
...event,
ts: new Date().toISOString(),
};
// Log to console (development)
if (process.env.NODE_ENV === 'development') {
console.log(JSON.stringify(logEntry));
}
// Send to analytics service (production)
if (process.env.NODE_ENV === 'production') {
// TODO: Send to analytics endpoint
}
}
// Usage
logTelemetry({
event_name: 'api_call',
user_id: hashUserId(userId),
ts: new Date().toISOString(),
meta: {
endpoint: '/tools/analyze-perspective',
lat_ms: 245,
status: 200,
},
});
Resources
Success Criteria
Phase 0 is successful when:
- ✅
npx @hummbl/mcp-server runs cleanly on any machine
- ✅ 10+ developers using it weekly by target date
- ✅ 3 compelling examples work out-of-the-box
- ✅ Zero P0 bugs after Week 2
- ✅ Clear path to Phase 1 identified
Phase 0 fails if:
- ❌ <10 users after 60 days → Pivot to consulting focus
- ❌ >5 P0 bugs in first 30 days → Architecture review needed
MCP Server Developer v1.1 - Enhanced
🔄 Workflow
Kaynak: Anthropic MCP SDK Best Practices
Aşama 1: Architecture & Setup
Aşama 2: Development Loop
Aşama 3: Release
Kontrol Noktaları
| Aşama |
Doğrulama |
| 1 |
Server hatasız kapanıp (graceful shutdown) yeniden başlıyor mu? |
| 2 |
list_tools çağrısı <100ms içinde cevap veriyor mu? |
| 3 |
Dokümantasyon "Copy-Paste" ile çalıştırılabiliyor mu? |
1---2name: mcp-server-developer3description: Model Context Protocol (MCP) server implementation specialist for Claude Desktop integration. Handles TypeScript/Node.js server scaffolding, endpoint creation, telemetry setup, npx distribution, and comprehensive documentation. Follows MCP specification and best practices for production-grade server deployment.4---5
6# MCP Server Developer
7
8Expert implementation of Model Context Protocol (MCP) servers for Claude Desktop integration. This skill provides comprehensive guidance for building production-ready MCP servers with TypeScript, including architecture design, endpoint implementation, database integration, telemetry tracking, and distribution via npx.
9
10## Core Competencies
11
12### 1. MCP Server Architecture
13- **Scaffold Generation**: TypeScript project setup with proper MCP protocol structure
14- **Server Configuration**: MCP protocol compliance, JSON-RPC handling, stdio transport
15- **Endpoint Design**: RESTful-style resource and tool endpoints following MCP spec
16- **Type Safety**: Strict TypeScript types for requests, responses, and schemas
17- **Error Handling**: Comprehensive error catching with proper MCP error responses
18
19### 2. Database Integration
20- **D1 SQLite Setup**: Schema design optimized for edge deployment
21- **Query Optimization**: <500ms latency targets for all database operations
22- **FTS5 Search**: Full-text search implementation for model discovery
23- **Data Modeling**: Efficient table structures with proper indexing
24- **Migration Scripts**: Version-controlled schema evolution
25
26### 3. Telemetry & Analytics
27- **Event Tracking**: Structured logging for install, usage, and performance metrics
28- **Latency Monitoring**: Request timing with percentile tracking (p50, p95, p99)
29- **User Analytics**: Privacy-respecting usage patterns without PII
30- **Error Reporting**: Structured error logging for debugging
31- **Success Metrics**: WAU (Weekly Active Users) and engagement tracking
32
33### 4. NPX Distribution
34- **Package Configuration**: package.json with proper bin entries for npx execution
35- **Version Management**: Semantic versioning with changelog automation
36- **Publishing Workflow**: npm registry deployment with CI/CD integration
37- **Update Strategy**: Non-breaking updates with deprecation notices
38- **Installation Testing**: Cross-platform verification (macOS, Windows, Linux)
39
40## Implementation Guidelines
41
42### Phase 0: Server Scaffold (Week 1)
431. **Initialize TypeScript Project**
44 ```bash
45 npm init -y
46 npm install --save-dev typescript @types/node
47 npx tsc --init
48 ```
49
502. **MCP Server Setup**
51 - Install MCP SDK: `npm install @modelcontextprotocol/sdk`
52 - Create server entry point (`src/index.ts`)
53 - Implement stdio transport handler
54 - Add basic resource/tool endpoints
55
563. **Type Definitions**
57 ```typescript
58 interface MCPServer {
59 name: string;
60 version: string;
61 resources: Resource[];
62 tools: Tool[];
63 }
64
65 interface Resource {
66 uri: string;
67 name: string;
68 description: string;
69 mimeType?: string;
70 }
71
72 interface Tool {
73 name: string;
74 description: string;
75 inputSchema: JSONSchema;
76 }
77 ```
78
79### Phase 1: Core Functionality (Week 2)
801. **Database Schema**
81 ```sql
82 CREATE TABLE mental_models (
83 id TEXT PRIMARY KEY,
84 code TEXT UNIQUE NOT NULL,
85 transformation_class TEXT NOT NULL,
86 name TEXT NOT NULL,
87 description TEXT,
88 use_cases JSON,
89 difficulty_tier INTEGER,
90 prerequisites JSON,
91 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
92 );
93
94 CREATE VIRTUAL TABLE models_fts USING fts5(
95 code, name, description, use_cases
96 );
97 ```
98
992. **Endpoint Implementation**
100 - GET resource endpoints (models list, transformations)
101 - POST tool endpoints (analyze, decompose, synthesize)
102 - Error handling with MCP-compliant responses
103 - Input validation with Zod or similar
104
1053. **Transformation Logic**
106 - Perspective (P): Multi-viewpoint analysis
107 - Inversion (IN): Reverse assumption mapping
108 - Composition (CO): Integration synthesis
109 - Decomposition (DE): Component breakdown
110 - Recursion (RE): Feedback loop identification
111 - Meta-Systems (SY): Systems-of-systems coordination
112
113### Phase 2: Documentation & Examples (Week 3)
1141. **Quick Start Guide** (5-minute setup)
115 ```markdown
116 # Quick Start
117
118 1. Install via npx:
119 ```bash
120 npx @hummbl/mcp-server
121 ```
122
123 2. Configure Claude Desktop:
124 Add to `claude_desktop_config.json`:
125 ```json
126 {
127 "mcpServers": {
128 "hummbl": {
129 "command": "npx",
130 "args": ["@hummbl/mcp-server"]
131 }
132 }
133 }
134 ```
135
136 3. Test in Claude:
137 "Use the perspective transformation on this problem: [your problem]"
138 ```
139
1402. **Runnable Examples**
141 - **Example 1**: Code analysis with decomposition
142 - **Example 2**: Strategy synthesis with composition
143 - **Example 3**: Decision making with perspective + inversion
144
1453. **Troubleshooting Guide**
146 - Installation failures (permissions, npm config)
147 - Claude Desktop connection issues
148 - Latency/performance problems
149 - Error message reference
150
151### Phase 3: Distribution & Testing (Week 4)
1521. **NPX Setup**
153 ```json
154 {
155 "name": "@hummbl/mcp-server",
156 "version": "1.0.0",
157 "bin": {
158 "hummbl-mcp": "./dist/index.js"
159 },
160 "files": ["dist", "README.md", "LICENSE"],
161 "publishConfig": {
162 "access": "public"
163 }
164 }
165 ```
166
1672. **CI/CD Pipeline**
168 - GitHub Actions for automated testing
169 - Automated npm publishing on release tags
170 - Cross-platform binary testing
171 - Documentation deployment
172
1733. **Beta Testing**
174 - 3-5 beta testers minimum
175 - Structured feedback collection
176 - Performance benchmarking
177 - Edge case identification
178
179## Quality Gates
180
181### Functional Requirements ✅
182- [ ] All MCP endpoints respond correctly to spec
183- [ ] Database queries complete <500ms (p95)
184- [ ] Zero crashes during 24-hour stability test
185- [ ] Error handling covers all edge cases
186- [ ] Type safety: 100% TypeScript strict mode
187
188### Documentation Requirements ✅
189- [ ] Quick start achieves first run in <5 minutes
190- [ ] All examples run without modification
191- [ ] Troubleshooting covers 90%+ of common issues
192- [ ] API reference is complete and accurate
193- [ ] Inline code comments for complex logic
194
195### Adoption Requirements ✅
196- [ ] 10+ Weekly Active Users (WAU) by target date
197- [ ] 3+ beta testers provide positive feedback
198- [ ] Zero P0 bugs in production after Week 2
199- [ ] Average user rating ≥4.0/5.0
200- [ ] MCP directory listing approved
201
202## MCP Protocol Compliance
203
204### Required Capabilities
2051. **Resources**: Read-only data access (models, transformations)
2062. **Tools**: Interactive operations (analyze, decompose, synthesize)
2073. **Prompts**: Pre-defined workflows (optional in Phase 0)
208
209### Transport Layer
210- **stdio**: Standard input/output for Claude Desktop
211- **JSON-RPC 2.0**: All requests/responses follow spec
212- **Error Codes**: Proper HTTP-style error codes
213
214### Security Best Practices
215- Input sanitization for all user-provided data
216- Rate limiting to prevent abuse
217- No external network calls without explicit permission
218- Minimal permissions model
219- Audit logging for all operations
220
221## Performance Optimization
222
223### Latency Targets
224- **p50**: <100ms for all endpoints
225- **p95**: <500ms for database queries
226- **p99**: <1000ms for complex transformations
227
228### Optimization Strategies
2291. **Database**: Index all frequently queried columns
2302. **Caching**: In-memory LRU cache for hot data
2313. **Lazy Loading**: Load resources only when needed
2324. **Batch Operations**: Group similar queries
2335. **Connection Pooling**: Reuse database connections
234
235## Telemetry Schema
236
237```typescript
238interface TelemetryEvent {
239 event_name: 'mcp_install' | 'mcp_success_run' | 'api_call' | 'doc_view';
240 user_id: string; // Anonymized hash
241 ts: string; // ISO 8601
242 meta: {
243 client?: string; // Claude Desktop version
244 version?: string; // MCP server version
245 model?: string; // e.g., "CO4"
246 lat_ms?: number; // Latency in milliseconds
247 endpoint?: string; // Endpoint called
248 status?: number; // HTTP-style status code
249 };
250}
251```
252
253## Distribution Checklist
254
255### Pre-Publication ✅
256- [ ] Version number updated (semantic versioning)
257- [ ] CHANGELOG.md updated with release notes
258- [ ] README.md reviewed and accurate
259- [ ] LICENSE file present (MIT recommended)
260- [ ] package.json metadata complete
261- [ ] Dependencies audit clean (`npm audit`)
262- [ ] Bundle size acceptable (<5MB)
263
264### MCP Directory Submission ✅
265- [ ] Clear description (160 characters max)
266- [ ] Category selection appropriate
267- [ ] Screenshots/demos prepared
268- [ ] Usage examples documented
269- [ ] Support contact provided
270
271### Post-Publication ✅
272- [ ] NPM package downloadable via npx
273- [ ] GitHub release created with notes
274- [ ] Documentation site updated
275- [ ] Community announcement posted
276- [ ] Beta testers notified
277
278## Common Pitfalls & Solutions
279
280### Issue: Claude Desktop doesn't detect server
281**Solution**: Verify stdio transport is properly initialized and JSON-RPC responses are formatted correctly.
282
283### Issue: High latency (>1s)
284**Solution**: Add database indexes, implement caching, or optimize query complexity.
285
286### Issue: Installation fails on Windows
287**Solution**: Test with cross-platform paths, avoid shell-specific commands, use `cross-env` for environment variables.
288
289### Issue: Breaking changes between versions
290**Solution**: Follow semantic versioning strictly, maintain backwards compatibility, provide migration guides.
291
292## Examples
293
294### Example 1: Minimal MCP Server
295
296```typescript
297import { Server } from '@modelcontextprotocol/sdk/server/index.js';
298import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
299
300const server = new Server({
301 name: 'hummbl-mcp-server',
302 version: '1.0.0',
303}, {
304 capabilities: {
305 resources: {},
306 tools: {},
307 },
308});
309
310// Register resource: List mental models
311server.setRequestHandler('resources/list', async () => ({
312 resources: [
313 {
314 uri: 'hummbl://models',
315 name: 'Mental Models',
316 description: 'BASE120 mental model collection',
317 mimeType: 'application/json',
318 },
319 ],
320}));
321
322// Register tool: Analyze with perspective transformation
323server.setRequestHandler('tools/call', async (request) => {
324 if (request.params.name === 'analyze-perspective') {
325 const { text } = request.params.arguments;
326 // Transformation logic here
327 return {
328 content: [{
329 type: 'text',
330 text: `Perspective analysis: ${text}`,
331 }],
332 };
333 }
334});
335
336// Start server
337const transport = new StdioServerTransport();
338await server.connect(transport);
339```
340
341### Example 2: Database Integration
342
343```typescript
344import Database from 'better-sqlite3';
345
346const db = new Database('hummbl.db');
347
348// Initialize schema
349db.exec(`
350 CREATE TABLE IF NOT EXISTS mental_models (
351 id TEXT PRIMARY KEY,
352 code TEXT UNIQUE NOT NULL,
353 transformation_class TEXT NOT NULL,
354 name TEXT NOT NULL,
355 description TEXT
356 );
357
358 CREATE INDEX IF NOT EXISTS idx_transformation
359 ON mental_models(transformation_class);
360`);
361
362// Query with prepared statement
363const getModelsByTransformation = db.prepare(`
364 SELECT * FROM mental_models
365 WHERE transformation_class = ?
366 ORDER BY code
367`);
368
369const perspectiveModels = getModelsByTransformation.all('P');
370```
371
372### Example 3: Telemetry Logging
373
374```typescript
375function logTelemetry(event: TelemetryEvent) {
376 const logEntry = {
377 ...event,
378 ts: new Date().toISOString(),
379 };
380
381 // Log to console (development)
382 if (process.env.NODE_ENV === 'development') {
383 console.log(JSON.stringify(logEntry));
384 }
385
386 // Send to analytics service (production)
387 if (process.env.NODE_ENV === 'production') {
388 // TODO: Send to analytics endpoint
389 }
390}
391
392// Usage
393logTelemetry({
394 event_name: 'api_call',
395 user_id: hashUserId(userId),
396 ts: new Date().toISOString(),
397 meta: {
398 endpoint: '/tools/analyze-perspective',
399 lat_ms: 245,
400 status: 200,
401 },
402});
403```
404
405## Resources
406
407- **MCP Specification**: https://spec.modelcontextprotocol.io/
408- **MCP SDK**: https://github.com/modelcontextprotocol/typescript-sdk
409- **Claude Desktop Config**: https://docs.claude.com/en/docs/agents-and-tools/agent-skills
410- **TypeScript Best Practices**: https://typescript-lang.org/docs/handbook/intro.html
411- **NPM Publishing Guide**: https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry
412
413## Success Criteria
414
415**Phase 0 is successful when:**
4161. ✅ `npx @hummbl/mcp-server` runs cleanly on any machine
4172. ✅ 10+ developers using it weekly by target date
4183. ✅ 3 compelling examples work out-of-the-box
4194. ✅ Zero P0 bugs after Week 2
4205. ✅ Clear path to Phase 1 identified
421
422**Phase 0 fails if:**
4231. ❌ <10 users after 60 days → Pivot to consulting focus
4242. ❌ >5 P0 bugs in first 30 days → Architecture review needed
425*MCP Server Developer v1.1 - Enhanced*
426
427## 🔄 Workflow
428
429> **Kaynak:** [Anthropic MCP SDK Best Practices](https://github.com/modelcontextprotocol/typescript-sdk)
430
431### Aşama 1: Architecture & Setup
432- [ ] **Scaffolding**: `npm init` ve TypeScript config ayarlarını yap.
433- [ ] **Types**: Resource ve Tool tiplerini strict mode ile tanımla.
434- [ ] **Transport**: Stdio transport'u `onerror` handler ile güvenli hale getir.
435
436### Aşama 2: Development Loop
437- [ ] **Hot Reload**: Geliştirme sırasında `nodemon` veya `watch` modunu kullan.
438- [ ] **Inspector**: `npx @modelcontextprotocol/inspector` ile canlı debug yap.
439- [ ] **Logging**: Structured logging (JSON) ekle ama stdio'yu kirletme (stderr kullan).
440
441### Aşama 3: Release
442- [ ] **Distribution**: Paketi `npm`'e veya `npx` ile çalışacak şekilde publish et.
443- [ ] **Docs**: README.md'ye `claude_desktop_config.json` örneğini ekle.
444- [ ] **Analytics**: Anonim kullanım verisi toplama (opt-in) mekanizmasını kur.
445
446### Kontrol Noktaları
447| Aşama | Doğrulama |
448|-------|-----------|
449| 1 | Server hatasız kapanıp (graceful shutdown) yeniden başlıyor mu? |
450| 2 | `list_tools` çağrısı <100ms içinde cevap veriyor mu? |
451| 3 | Dokümantasyon "Copy-Paste" ile çalıştırılabiliyor mu? |