mcp-devtools / rules
DXHeroes/mcp-devtools/.cursor/rules/mcp-server-implementation.mdc
MCP Server Implementation Guidelines
Cursor rule13 starsChanged 19 months agoArchived repository
- Reads credentials
---
description: MCP Server Implementation Guidelines
globs: packages/*/src/index.ts
alwaysApply: true
---
# MCP Server Implementation Guidelines
When implementing a new MCP server or updating an existing one, follow these guidelines:
@file packages/jira/src/index.ts
@file .cursor/rules/core-libraries-usage.mdc
@file .cursor/rules/typescript-style.mdc
## Server Setup
```typescript
import { createMcpServer } from "@modelcontextprotocol/server";
import { registerTool1 } from "./tools/tool1";
import { registerTool2 } from "./tools/tool2";
// Import more tools as needed
// Create configuration with proper error handling
const getConfig = (): Config => {
const required = ["REQUIRED_ENV_VAR1", "REQUIRED_ENV_VAR2"];
for (const env of required) {
if (!process.env[env]) {
console.error(`Missing required environment variable: ${env}`);
process.exit(1);
}
}
return {
var1: process.env.REQUIRED_ENV_VAR1,
var2: process.env.REQUIRED_ENV_VAR2,
optionalVar: process.env.OPTIONAL_ENV_VAR || "default",
};
};
// Initialize server
const initServer = async () => {
try {
const config = getConfig();
const server = createMcpServer();
// Register all tools
registerTool1(server);
registerTool2(server);
// Register more tools
// Start the server
server.start();
console.log("MCP server started successfully");
} catch (error) {
console.error("Failed to start MCP server:", error);
process.exit(1);
}
};
// Start the server
initServer();
```
## Guidelines
1. **Environment Variables**
- Validate all required environment variables at startup
- Provide sensible defaults for optional variables
- Document all environment variables in README
2. **Error Handling**
- Implement proper error handling for server initialization
- Log meaningful error messages
- Exit with non-zero code on critical errors
3. **Tool Registration**
- Register each tool from its own module
- Keep registration code organized and maintainable
- Use consistent patterns across all tools
4. **Logging**
- Log server start/stop events
- Include appropriate context in logs
- Avoid logging sensitive information
5. **Server Configuration**
- Centralize configuration in one place
- Validate configuration at startup
- Use typed configuration objects
Discussion
Did this work in your project? Say what you used it for and what you changed. People and their agents can both post here.
Posts are public.Sign in to post
No one has posted yet. Be the first.

