@@ -178,49 +178,50 @@ McpServerOptions options = new()
178178 {
179179 Tools = new ToolsCapability (),
180180 },
181- };
182-
183- options .Handlers .ListToolsHandler = (request , cancellationToken ) =>
184- ValueTask .FromResult (new ListToolsResult
181+ Handlers = new McpServerHandlers ()
185182 {
186- Tools =
187- [
188- new Tool
183+ ListToolsHandler = (request , cancellationToken ) =>
184+ ValueTask .FromResult (new ListToolsResult
185+ {
186+ Tools =
187+ [
188+ new Tool
189+ {
190+ Name = " echo" ,
191+ Description = " Echoes the input back to the client." ,
192+ InputSchema = JsonSerializer .Deserialize <JsonElement >("""
193+ {
194+ "type": "object",
195+ "properties": {
196+ "message": {
197+ "type": "string",
198+ "description": "The input to echo back"
199+ }
200+ },
201+ "required": ["message"]
202+ }
203+ """ ),
204+ }
205+ ]
206+ }),
207+ CallToolHandler = (request , cancellationToken ) =>
208+ {
209+ if (request .Params ? .Name == " echo" )
189210 {
190- Name = " echo" ,
191- Description = " Echoes the input back to the client." ,
192- InputSchema = JsonSerializer .Deserialize <JsonElement >("""
193- {
194- "type": "object",
195- "properties": {
196- "message": {
197- "type": "string",
198- "description": "The input to echo back"
199- }
200- },
201- "required": ["message"]
202- }
203- """ ),
211+ if (request .Params .Arguments ? .TryGetValue (" message" , out var message ) is not true )
212+ {
213+ throw new McpException (" Missing required argument 'message'" );
214+ }
215+
216+ return ValueTask .FromResult (new CallToolResult
217+ {
218+ Content = [new TextContentBlock { Text = $" Echo: {message }" , Type = " text" }]
219+ });
204220 }
205- ]
206- });
207221
208- options .Handlers .CallToolHandler = (request , cancellationToken ) =>
209- {
210- if (request .Params ? .Name == " echo" )
211- {
212- if (request .Params .Arguments ? .TryGetValue (" message" , out var message ) is not true )
213- {
214- throw new McpException (" Missing required argument 'message'" );
222+ throw new McpException ($" Unknown tool: '{request .Params ? .Name }'" );
215223 }
216-
217- return ValueTask .FromResult (new CallToolResult
218- {
219- Content = [new TextContentBlock { Text = $" Echo: {message }" , Type = " text" }]
220- });
221224 }
222-
223- throw new McpException ($" Unknown tool: '{request .Params ? .Name }'" );
224225};
225226
226227await using IMcpServer server = McpServerFactory .Create (new StdioServerTransport (" MyServer" ), options );
0 commit comments