All StepsStep 5 of 6
5

Advanced Features

Production MCP servers need proper error handling, logging, and may use sampling.

Sampling allows your server to request Claude to generate text:

Advanced Features
// Error handling
server.tool("risky_operation", "May fail", {}, async () => {
  try {
    const result = await performOperation();
    return { content: [{ type: "text", text: result }] };
  } catch (error) {
    return {
      content: [{
        type: "text",
        text: `Error: ${error.message}`,
      }],
      isError: true,
    };
  }
});

// Logging
server.server.sendLoggingMessage({
  level: "info",
  data: "Server started successfully",
});