toolWithSampleServer.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. "use strict";
  2. // Run with: npx tsx src/examples/server/toolWithSampleServer.ts
  3. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  4. if (k2 === undefined) k2 = k;
  5. var desc = Object.getOwnPropertyDescriptor(m, k);
  6. if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
  7. desc = { enumerable: true, get: function() { return m[k]; } };
  8. }
  9. Object.defineProperty(o, k2, desc);
  10. }) : (function(o, m, k, k2) {
  11. if (k2 === undefined) k2 = k;
  12. o[k2] = m[k];
  13. }));
  14. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  15. Object.defineProperty(o, "default", { enumerable: true, value: v });
  16. }) : function(o, v) {
  17. o["default"] = v;
  18. });
  19. var __importStar = (this && this.__importStar) || function (mod) {
  20. if (mod && mod.__esModule) return mod;
  21. var result = {};
  22. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  23. __setModuleDefault(result, mod);
  24. return result;
  25. };
  26. Object.defineProperty(exports, "__esModule", { value: true });
  27. const mcp_js_1 = require("../../server/mcp.js");
  28. const stdio_js_1 = require("../../server/stdio.js");
  29. const z = __importStar(require("zod/v4"));
  30. const mcpServer = new mcp_js_1.McpServer({
  31. name: 'tools-with-sample-server',
  32. version: '1.0.0'
  33. });
  34. // Tool that uses LLM sampling to summarize any text
  35. mcpServer.registerTool('summarize', {
  36. description: 'Summarize any text using an LLM',
  37. inputSchema: {
  38. text: z.string().describe('Text to summarize')
  39. }
  40. }, async ({ text }) => {
  41. // Call the LLM through MCP sampling
  42. const response = await mcpServer.server.createMessage({
  43. messages: [
  44. {
  45. role: 'user',
  46. content: {
  47. type: 'text',
  48. text: `Please summarize the following text concisely:\n\n${text}`
  49. }
  50. }
  51. ],
  52. maxTokens: 500
  53. });
  54. // Since we're not passing tools param to createMessage, response.content is single content
  55. return {
  56. content: [
  57. {
  58. type: 'text',
  59. text: response.content.type === 'text' ? response.content.text : 'Unable to generate summary'
  60. }
  61. ]
  62. };
  63. });
  64. async function main() {
  65. const transport = new stdio_js_1.StdioServerTransport();
  66. await mcpServer.connect(transport);
  67. console.log('MCP server is running...');
  68. }
  69. main().catch(error => {
  70. console.error('Server error:', error);
  71. process.exit(1);
  72. });
  73. //# sourceMappingURL=toolWithSampleServer.js.map