add title

This commit is contained in:
ihrpr 2025-06-15 20:42:25 +01:00
commit 4d03b243e3
No known key found for this signature in database
2 changed files with 599 additions and 171 deletions

View file

@ -15,6 +15,7 @@ import {
LoggingMessageNotificationSchema,
ResourceListChangedNotificationSchema,
} from '../../types.js';
import { getDisplayName } from '../../shared/metadataUtils.js';
// Create readline interface for user input
const readline = createInterface({
@ -317,7 +318,7 @@ async function listTools(): Promise<void> {
console.log(' No tools available');
} else {
for (const tool of toolsResult.tools) {
console.log(` - ${tool.name}: ${tool.description}`);
console.log(` - ${getDisplayName(tool)}: ${tool.description}`);
}
}
} catch (error) {
@ -429,7 +430,7 @@ async function listPrompts(): Promise<void> {
console.log(' No prompts available');
} else {
for (const prompt of promptsResult.prompts) {
console.log(` - ${prompt.name}: ${prompt.description}`);
console.log(` - ${getDisplayName(prompt)}: ${prompt.description}`);
}
}
} catch (error) {
@ -480,7 +481,7 @@ async function listResources(): Promise<void> {
console.log(' No resources available');
} else {
for (const resource of resourcesResult.resources) {
console.log(` - ${resource.name}: ${resource.uri}`);
console.log(` - ${getDisplayName(resource)}: ${resource.uri}`);
}
}
} catch (error) {

View file

@ -18,14 +18,18 @@ const getServer = () => {
const server = new McpServer({
name: 'simple-streamable-http-server',
version: '1.0.0',
title: 'Simple Streamable HTTP Server', // Display name for UI
}, { capabilities: { logging: {} } });
// Register a simple tool that returns a greeting
server.tool(
server.registerTool(
'greet',
'A simple greeting tool',
{
name: z.string().describe('Name to greet'),
title: 'Greeting Tool', // Display name for UI
description: 'A simple greeting tool',
inputSchema: {
name: z.string().describe('Name to greet'),
},
},
async ({ name }): Promise<CallToolResult> => {
return {
@ -84,12 +88,15 @@ const getServer = () => {
}
);
// Register a simple prompt
server.prompt(
// Register a simple prompt with title
server.registerPrompt(
'greeting-template',
'A simple greeting prompt template',
{
name: z.string().describe('Name to include in greeting'),
title: 'Greeting Template', // Display name for UI
description: 'A simple greeting prompt template',
arguments: {
name: z.string().describe('Name to include in greeting'),
},
},
async ({ name }): Promise<GetPromptResult> => {
return {
@ -148,10 +155,14 @@ const getServer = () => {
);
// Create a simple resource at a fixed URI
server.resource(
server.registerResource(
'greeting-resource',
'https://example.com/greetings/default',
{ mimeType: 'text/plain' },
{
title: 'Default Greeting', // Display name for UI
description: 'A simple greeting resource',
mimeType: 'text/plain'
},
async (): Promise<ReadResourceResult> => {
return {
contents: [