@ubuligan/server 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +74 -0
  2. package/package.json +2 -2
package/README.md ADDED
@@ -0,0 +1,74 @@
1
+ # @ubuligan/server
2
+
3
+ A thin **DX layer over the MCP SDK server**. Create an `McpServer`, register your tools / resources /
4
+ prompts with the standard SDK methods, then boot it over **stdio** (local) or **Streamable HTTP**
5
+ (production) with a single `serve()` call.
6
+
7
+ Part of the [MCP Toolkit](https://github.com/jsznpm/create-mcp-toolkit).
8
+
9
+ ## Install
10
+
11
+ ```bash
12
+ npm install @ubuligan/server zod
13
+ ```
14
+
15
+ (`zod` is used to declare tool input schemas — recommended but not required.)
16
+
17
+ ## Quick start
18
+
19
+ ```ts
20
+ import { createMCPServer, serve } from "@ubuligan/server";
21
+ import { z } from "zod";
22
+
23
+ const server = createMCPServer({ name: "my-server", version: "1.0.0" });
24
+
25
+ server.registerTool(
26
+ "add",
27
+ {
28
+ title: "Add two numbers",
29
+ inputSchema: { a: z.number(), b: z.number() },
30
+ },
31
+ async ({ a, b }) => ({
32
+ content: [{ type: "text", text: String(a + b) }],
33
+ }),
34
+ );
35
+
36
+ // stdio for Claude Desktop / local clients:
37
+ await serve(server, { transport: "stdio" });
38
+ ```
39
+
40
+ ### Run over Streamable HTTP
41
+
42
+ ```ts
43
+ // Pass a factory so each request gets a fresh server (stateless mode).
44
+ await serve(() => buildServer(), { transport: "http", port: 3000, path: "/mcp" });
45
+ ```
46
+
47
+ ## API
48
+
49
+ ### `createMCPServer({ name, version? }): McpServer`
50
+ Returns the SDK `McpServer`. Register capabilities with `registerTool` / `registerResource` /
51
+ `registerPrompt` — see the [MCP SDK docs](https://github.com/modelcontextprotocol/typescript-sdk).
52
+
53
+ ### `serve(serverOrFactory, options): Promise<void>`
54
+ Boot over the chosen transport.
55
+
56
+ | Option | Type | Default |
57
+ | --- | --- | --- |
58
+ | `transport` | `"stdio" \| "http"` | — (required) |
59
+ | `port` | `number` | `3000` (http) |
60
+ | `path` | `string` | `"/mcp"` (http) |
61
+ | `logger` | `Logger \| LogLevel` | silent |
62
+
63
+ For `http`, pass a **factory** `() => McpServer` to get a fresh server per request.
64
+
65
+ ### Lower-level helpers
66
+ - `startStdio(server, logger?)` — connect a server over stdio.
67
+ - `startHttp(serverOrFactory, opts?)` — start the HTTP listener; resolves to
68
+ `{ port, close }`. Supports `port: 0` (OS-assigned port, returned as the actual `port`).
69
+
70
+ `McpServer` is re-exported for convenience.
71
+
72
+ ## License
73
+
74
+ MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ubuligan/server",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Thin DX layer over the MCP SDK server: create a server and boot it over stdio or Streamable HTTP in one call",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -19,7 +19,7 @@
19
19
  "dependencies": {
20
20
  "@modelcontextprotocol/sdk": "^1.29.0",
21
21
  "express": "^4.21.2",
22
- "@ubuligan/shared": "^0.1.0"
22
+ "@ubuligan/shared": "^0.1.1"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/express": "^4.17.21",