mirror of
https://github.com/modelcontextprotocol/servers.git
synced 2026-04-19 16:43:24 +02:00
[WIP] Refactor everything server to be more modular and use recommended APIs.
* Adding prompts (simple, complex, with completions)
* Add prompts/simple.ts
- in addSimplePrompt()
- register a simple prompt with no arguments
* Add prompts/complex.ts
- in addComplexPrompt()
- define promptArgsSchema containing a required city arg of type string and an optional state arg of type state
- register the complex prompt with a prompt callback that combines the city and state into a prompt asking for the weather in that location
* Add prompts/completions.ts
- in addPromptWithCompletions()
- define promptArgsSchema containing department and name string fields with completion handlers
- register the completable prompt with a prompt callback that combines the inputs into a prompt asking to promote the selected name to head of the selected department
* Add prompts/index.ts
- import addSimplePrompt, addComplexPrompt, and addPromptWithCompletions
- export registerPrompts function
- in registerPrompts()
- call addSimplePrompt
- call addComplexPrompt
- call addPromptWithCompletions
* In package.json
- add prettier devDependency
- add prettier:check script
- add prettier:fix script
- in build script, copy docs folder to dist
* All other changes were prettier formatting
This commit is contained in:
@@ -1,15 +1,17 @@
|
||||
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
||||
import { registerTools } from "../tools/index.js";
|
||||
import { registerResources } from "../resources/index.js";
|
||||
import { dirname, join } from "path";
|
||||
import { readFileSync } from "fs";
|
||||
import { fileURLToPath } from "url";
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
const instructions = readInstructions();
|
||||
import { registerTools } from "../tools/index.js";
|
||||
import { registerResources } from "../resources/index.js";
|
||||
import { registerPrompts } from "../prompts/index.js";
|
||||
|
||||
// Create the MCP resource server
|
||||
// Everything Server factory
|
||||
export const createServer = () => {
|
||||
// Read the server instructions
|
||||
const instructions = readInstructions();
|
||||
|
||||
// Create the server
|
||||
const server = new McpServer(
|
||||
{
|
||||
name: "mcp-servers/everything",
|
||||
@@ -35,6 +37,9 @@ export const createServer = () => {
|
||||
// Register the resources
|
||||
registerResources(server);
|
||||
|
||||
// Register the prompts
|
||||
registerPrompts(server);
|
||||
|
||||
return {
|
||||
server,
|
||||
cleanup: () => {},
|
||||
@@ -42,14 +47,15 @@ export const createServer = () => {
|
||||
};
|
||||
};
|
||||
|
||||
// Read the server instructions from a file
|
||||
function readInstructions(): string {
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
const filePath = join(__dirname, "..", "docs", "server-instructions.md");
|
||||
let instructions;
|
||||
|
||||
try {
|
||||
instructions = readFileSync(
|
||||
join(__dirname, "..", "docs", "server-instructions.md"),
|
||||
"utf-8"
|
||||
);
|
||||
instructions = readFileSync(filePath, "utf-8");
|
||||
} catch (e) {
|
||||
instructions = "Server instructions not loaded: " + e;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user