[WIP] Refactor everything server to be more modular and use recommended APIs.

* Updated architecture.md

* Refactor / renamed all addXPrompt, addXTool, and addXResource functions to registerX...

* Added the add tool
This commit is contained in:
cliffhall
2025-12-05 18:43:36 -05:00
parent d868b1c8ac
commit eee9866ebb
11 changed files with 59 additions and 23 deletions

View File

@@ -0,0 +1,30 @@
import { z } from "zod";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
const AddSchema = z.object({
a: z.number().describe("First number"),
b: z.number().describe("Second number"),
});
const name = "add";
const config = {
title: "Add Tool",
description: "Adds two numbers",
inputSchema: AddSchema,
};
export const registerAddTool = (server: McpServer) => {
server.registerTool(name, config, async (args): Promise<CallToolResult> => {
const validatedArgs = AddSchema.parse(args);
const sum = validatedArgs.a + validatedArgs.b;
return {
content: [
{
type: "text",
text: `The sum of ${validatedArgs.a} and ${validatedArgs.b} is ${sum}.`,
},
],
};
});
};

View File

@@ -13,7 +13,7 @@ const config = {
inputSchema: EchoSchema,
};
export const addToolEcho = (server: McpServer) => {
export const registerEchoTool = (server: McpServer) => {
server.registerTool(name, config, async (args): Promise<CallToolResult> => {
const validatedArgs = EchoSchema.parse(args);
return {

View File

@@ -1,10 +1,12 @@
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { addToolEcho } from "./echo.js";
import { registerEchoTool } from "./echo.js";
import { registerAddTool } from "./add.js";
/**
* Register the tools with the MCP server.
* @param server
*/
export const registerTools = (server: McpServer) => {
addToolEcho(server);
registerEchoTool(server);
registerAddTool(server);
};