Skip to content

Commit 5ab7986

Browse files
committed
my own MCP server
1 parent d82472f commit 5ab7986

File tree

9 files changed

+1049
-11
lines changed

9 files changed

+1049
-11
lines changed

.prettierrc.js

Lines changed: 0 additions & 11 deletions
This file was deleted.

personal_mcp/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
log.log

personal_mcp/index.ts

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import {McpServer} from '@modelcontextprotocol/sdk/server/mcp.js';
2+
import {StdioServerTransport} from '@modelcontextprotocol/sdk/server/stdio.js';
3+
import fs from 'node:fs';
4+
import debug from 'debug';
5+
import * as Tools from './tools.ts';
6+
import * as Prompts from './prompts.ts';
7+
8+
if (process.env.DEBUG_FILE) {
9+
const logFile = fs.createWriteStream(process.env.DEBUG_FILE, {flags: 'a'});
10+
debug.log = function (chunk) {
11+
logFile.write(`${chunk}\n`);
12+
};
13+
logFile.on('error', function (error) {
14+
console.log(`Error when opening/writing to log file: ${error.message}`);
15+
logFile.end();
16+
process.exit(1);
17+
});
18+
}
19+
export const logger = debug('personal_mcp:log');
20+
21+
const server = new McpServer(
22+
{
23+
name: 'Paul MCP Server',
24+
version: '0.1.0',
25+
},
26+
{capabilities: {logging: {}}}
27+
);
28+
29+
server.tool(
30+
'hello',
31+
'Says hello',
32+
Tools.helloSchema.shape,
33+
// {
34+
// title: 'Personal MCP: Hello',
35+
// },
36+
Tools.hello
37+
);
38+
39+
// Gemini CLI doesn't seem to use prompts yet. :/
40+
server.prompt('reword-as-me', 'Reword it like me', Prompts.rewordItLikeMeSchema.shape, Prompts.rewordItLikeMe);
41+
42+
const transport = new StdioServerTransport();
43+
await server.connect(transport);
44+
logger('Paul MCP Server connected');

personal_mcp/package.json

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"name": "personal_mcp",
3+
"version": "1.0.0",
4+
"type": "module",
5+
"main": "index.js",
6+
"scripts": {
7+
"test": "node --test",
8+
"start": "ts-node index.ts"
9+
},
10+
"keywords": [],
11+
"author": "",
12+
"license": "ISC",
13+
"description": "",
14+
"devDependencies": {
15+
"@types/node": "^24.1.0",
16+
"ts-node": "^10.9.2",
17+
"typescript": "^5.8.3"
18+
},
19+
"dependencies": {
20+
"@modelcontextprotocol/sdk": "^1.17.0",
21+
"debug": "^4.4.1",
22+
"zod": "^3.25.76",
23+
"zod-to-json-schema": "^3.24.1"
24+
}
25+
}

0 commit comments

Comments
 (0)