Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
"files": ["build"],
"keywords": ["mcp", "mermaid", "data-visualization", "chart", "diagram"],
"dependencies": {
"@modelcontextprotocol/sdk": "^1.11.4",
"@modelcontextprotocol/sdk": "^1.27.1",
"cors": "^2.8.5",
"express": "^5.1.0",
"mermaid-isomorphic": "^3.0.4",
Expand All @@ -31,7 +31,7 @@
},
"devDependencies": {
"@biomejs/biome": "1.9.4",
"@modelcontextprotocol/inspector": "^0.12.0",
"@modelcontextprotocol/inspector": "^0.21.1",
"@types/cors": "^2.8.19",
"@types/express": "^5.0.3",
"@types/node": "^22.15.21",
Expand Down
15 changes: 7 additions & 8 deletions src/server.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import * as fs from "node:fs";
import * as os from "node:os";
import * as path from "node:path";
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import {
CallToolRequestSchema,
ErrorCode,
Expand All @@ -20,8 +19,8 @@ import { Logger } from "./utils/logger";
/**
* Creates and configures an MCP server for mermaid generation.
*/
export function createServer(): Server {
const server = new Server(
export function createServer(): McpServer {
const server = new McpServer(
{
name: "mcp-mermaid",
version: "0.1.3",
Expand All @@ -35,20 +34,20 @@ export function createServer(): Server {

setupToolHandlers(server);

server.onerror = (error) => Logger.error("MCP Error", error);
server.server.onerror = (error) => Logger.error("MCP Error", error);

return server;
}

/**
* Sets up tool handlers for the MCP server.
*/
function setupToolHandlers(server: Server): void {
server.setRequestHandler(ListToolsRequestSchema, async () => ({
function setupToolHandlers(server: McpServer): void {
server.server.setRequestHandler(ListToolsRequestSchema, async () => ({
tools: [tool],
}));

server.setRequestHandler(CallToolRequestSchema, async (request) => {
server.server.setRequestHandler(CallToolRequestSchema, async (request) => {
Comment on lines +45 to +50

Copilot AI Mar 25, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The migration to McpServer changes how request handlers and error handling are wired up (via server.server.*), but there are no automated tests covering server creation/handler registration. Adding a small unit test that instantiates createServer() and asserts ListTools/CallTool handlers are registered (and callable) would help catch SDK API regressions in future upgrades.

Copilot uses AI. Check for mistakes.
if (request.params.name === tool.name) {
try {
const args = request.params.arguments || {};
Expand Down
4 changes: 2 additions & 2 deletions src/services/sse.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import type { Server } from "@modelcontextprotocol/sdk/server/index.js";
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";
import type { Request, Response } from "express";
import express from "express";

export const startSSEMcpServer = async (
server: Server,
server: McpServer,
endpoint = "/sse",
port = 3033,
host?: string,
Expand Down
4 changes: 2 additions & 2 deletions src/services/stdio.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { Server } from "@modelcontextprotocol/sdk/server/index.js";
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

export async function startStdioMcpServer(server: Server): Promise<void> {
export async function startStdioMcpServer(server: McpServer): Promise<void> {
const transport = new StdioServerTransport();
await server.connect(transport);
}
4 changes: 2 additions & 2 deletions src/services/streamable.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import type { Server } from "@modelcontextprotocol/sdk/server/index.js";
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
import cors from "cors";
import type { Request, Response } from "express";
import express from "express";

export const startHTTPStreamableServer = async (
createServer: () => Server,
createServer: () => McpServer,
endpoint = "/mcp",
port = 1122,
host?: string,
Expand Down
Loading