commit
f720d1e232
7 changed files with 2510 additions and 0 deletions
@ -0,0 +1 @@ |
|||
node_modules |
@ -0,0 +1,71 @@ |
|||
import { Client } from "@modelcontextprotocol/sdk/client/index.js"; |
|||
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js"; |
|||
|
|||
const transport = new StdioClientTransport({ |
|||
command: "node", |
|||
args: ["./server.js"], |
|||
cwd: process.cwd(), |
|||
}); |
|||
|
|||
const client = new Client( |
|||
{ |
|||
name: "example-client", |
|||
version: "1.0.0", |
|||
}, |
|||
{ |
|||
capabilities: { |
|||
prompts: {}, |
|||
resources: {}, |
|||
tools: {}, |
|||
}, |
|||
} |
|||
); |
|||
|
|||
try { |
|||
await client.connect(transport); |
|||
console.log("Connected successfully"); |
|||
|
|||
// const prompts = await client.listPrompts();
|
|||
// console.log(prompts);
|
|||
|
|||
// const prompt = await client.getPrompt("example-prompt", {
|
|||
// arg1: "value",
|
|||
// });
|
|||
// console.log(prompt);
|
|||
|
|||
// Call a tool
|
|||
// const result = await client.callTool({
|
|||
// name: "echo",
|
|||
// arguments: {
|
|||
// message: "value",
|
|||
// },
|
|||
// });
|
|||
// console.log(result);
|
|||
|
|||
// const resources = await client.listResources();
|
|||
// console.log(resources);
|
|||
|
|||
// Read a resource
|
|||
const resource = await client.readResource("echo://example.txt"); |
|||
console.log(resource); |
|||
} catch (error) { |
|||
console.error("Failed to connect:", error); |
|||
} |
|||
|
|||
// // List prompts
|
|||
// const prompts = await client.listPrompts();
|
|||
// console.log(prompts);
|
|||
|
|||
// Get a prompt
|
|||
// const prompt = await client.getPrompt("example-prompt", {
|
|||
// arg1: "value"
|
|||
// });
|
|||
// console.log(11);
|
|||
// console.log(prompt);
|
|||
|
|||
// List resources
|
|||
// const resources = await client.listResources();
|
|||
// console.log(resources);
|
|||
|
|||
// Read a resource
|
|||
// const resource = await client.readResource("file:///example.txt");
|
@ -0,0 +1,19 @@ |
|||
{ |
|||
"name": "mcp", |
|||
"version": "1.0.0", |
|||
"type": "module", |
|||
"description": "", |
|||
"main": "index.js", |
|||
"scripts": { |
|||
"test": "mcp-inspector node server.js" |
|||
}, |
|||
"keywords": [], |
|||
"author": "", |
|||
"license": "ISC", |
|||
"packageManager": "pnpm@10.4.1", |
|||
"dependencies": { |
|||
"@modelcontextprotocol/inspector": "^0.6.0", |
|||
"@modelcontextprotocol/sdk": "^1.7.0", |
|||
"zod": "^3.24.2" |
|||
} |
|||
} |
File diff suppressed because it is too large
@ -0,0 +1,3 @@ |
|||
- https://mcpcn.com/docs/examples/ |
|||
- https://zhuanlan.zhihu.com/p/30869685315 |
|||
- https://www.npmjs.com/package/@modelcontextprotocol/inspector |
@ -0,0 +1,57 @@ |
|||
import { Server } from "@modelcontextprotocol/sdk/server/index.js"; |
|||
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; |
|||
import { |
|||
ListPromptsRequestSchema, |
|||
GetPromptRequestSchema, |
|||
} from "@modelcontextprotocol/sdk/types.js"; |
|||
|
|||
const server = new Server( |
|||
{ |
|||
name: "example-server", |
|||
version: "1.0.0", |
|||
}, |
|||
{ |
|||
capabilities: { |
|||
prompts: {}, |
|||
}, |
|||
} |
|||
); |
|||
|
|||
server.setRequestHandler(ListPromptsRequestSchema, async () => { |
|||
return { |
|||
prompts: [ |
|||
{ |
|||
name: "example-prompt", |
|||
description: "An example prompt template", |
|||
arguments: [ |
|||
{ |
|||
name: "arg1", |
|||
description: "Example argument", |
|||
required: true, |
|||
}, |
|||
], |
|||
}, |
|||
], |
|||
}; |
|||
}); |
|||
|
|||
server.setRequestHandler(GetPromptRequestSchema, async (request) => { |
|||
if (request.params.name !== "example-prompt") { |
|||
throw new Error("Unknown prompt"); |
|||
} |
|||
return { |
|||
description: "Example prompt", |
|||
messages: [ |
|||
{ |
|||
role: "user", |
|||
content: { |
|||
type: "text", |
|||
text: "Example prompt text", |
|||
}, |
|||
}, |
|||
], |
|||
}; |
|||
}); |
|||
|
|||
const transport = new StdioServerTransport(); |
|||
await server.connect(transport); |
@ -0,0 +1,43 @@ |
|||
import { |
|||
McpServer, |
|||
ResourceTemplate, |
|||
} from "@modelcontextprotocol/sdk/server/mcp.js"; |
|||
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; |
|||
import { z } from "zod"; |
|||
|
|||
const server = new McpServer({ |
|||
name: "Echo", |
|||
version: "1.0.0", |
|||
}); |
|||
|
|||
server.resource( |
|||
"echo", |
|||
new ResourceTemplate("echo://{message}", { list: undefined }), |
|||
async (uri, { message }) => ({ |
|||
contents: [ |
|||
{ |
|||
uri: uri.href, |
|||
text: `Resource echo: ${message}`, |
|||
}, |
|||
], |
|||
}) |
|||
); |
|||
|
|||
server.tool("echo", { message: z.string() }, async ({ message }) => ({ |
|||
content: [{ type: "text", text: `Tool echo: ${message}` }], |
|||
})); |
|||
|
|||
server.prompt("echo", { message: z.string() }, ({ message }) => ({ |
|||
messages: [ |
|||
{ |
|||
role: "user", |
|||
content: { |
|||
type: "text", |
|||
text: `Please process this message: ${message}`, |
|||
}, |
|||
}, |
|||
], |
|||
})); |
|||
|
|||
const transport = new StdioServerTransport(); |
|||
await server.connect(transport); |
Loading…
Reference in new issue