@openmark/mcp 1.0.3 → 1.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.
package/README.md ADDED
@@ -0,0 +1,168 @@
1
+ # @openmark/mcp
2
+
3
+ MCP server for [openmark](https://openmark.cc) — lets AI coding agents create, read, and update markdown documents.
4
+
5
+ ## Tools
6
+
7
+ | Tool | Description |
8
+ |------|-------------|
9
+ | `openmark_create_doc` | Create a new markdown document and return its shareable URL |
10
+ | `openmark_read_doc` | Read a document's content by slug or full URL |
11
+ | `openmark_update_doc` | Replace the content of an existing document you own |
12
+ | `openmark_list_comments` | List comments left on a document |
13
+ | `openmark_resolve_comment` | Mark a comment resolved or unresolved |
14
+ | `openmark_delete_comment` | Delete a comment on a document you own |
15
+
16
+ ## Setup
17
+
18
+ ### 1. Get an API key
19
+
20
+ Sign in at [openmark.cc](https://openmark.cc), go to **Settings → API Keys**, and generate a key. It starts with `omk_`.
21
+
22
+ ### 2. Add to your MCP client
23
+
24
+ **Claude Code (CLI)** — run once in your terminal:
25
+
26
+ ```bash
27
+ claude mcp add openmark -e OPENMARK_API_KEY=omk_your_key_here -- npx -y @openmark/mcp
28
+ ```
29
+
30
+ This writes to `~/.claude.json`. Verify with `claude mcp list`.
31
+
32
+ ---
33
+
34
+ **Claude Desktop** — edit `~/Library/Application Support/Claude/claude_desktop_config.json`:
35
+
36
+ ```json
37
+ {
38
+ "mcpServers": {
39
+ "openmark": {
40
+ "command": "npx",
41
+ "args": ["-y", "@openmark/mcp"],
42
+ "env": {
43
+ "OPENMARK_API_KEY": "omk_your_key_here"
44
+ }
45
+ }
46
+ }
47
+ }
48
+ ```
49
+
50
+ **Cursor** — edit `~/.cursor/mcp.json`:
51
+
52
+ ```json
53
+ {
54
+ "mcpServers": {
55
+ "openmark": {
56
+ "command": "npx",
57
+ "args": ["-y", "@openmark/mcp"],
58
+ "env": {
59
+ "OPENMARK_API_KEY": "omk_your_key_here"
60
+ }
61
+ }
62
+ }
63
+ }
64
+ ```
65
+
66
+ Restart your MCP client after saving.
67
+
68
+ ## Tool reference
69
+
70
+ ### `openmark_create_doc`
71
+
72
+ Creates a new document and returns its URL.
73
+
74
+ | Parameter | Type | Required | Description |
75
+ |-----------|------|----------|-------------|
76
+ | `content` | string | yes | Markdown content (max 500 KB) |
77
+ | `title` | string | no | Document title (max 300 chars) |
78
+
79
+ ### `openmark_read_doc`
80
+
81
+ Reads a document by slug or full URL.
82
+
83
+ | Parameter | Type | Required | Description |
84
+ |-----------|------|----------|-------------|
85
+ | `slug` | string | yes | 7-character slug (e.g. `abc1234`) or full openmark URL |
86
+
87
+ ### `openmark_update_doc`
88
+
89
+ Replaces the content of a document you own.
90
+
91
+ | Parameter | Type | Required | Description |
92
+ |-----------|------|----------|-------------|
93
+ | `slug` | string | yes | 7-character slug or full openmark URL |
94
+ | `content` | string | yes | New markdown content |
95
+ | `title` | string | no | New title (omit to leave unchanged) |
96
+
97
+ ### `openmark_list_comments`
98
+
99
+ Lists comments on a document as a plain-text digest (one line per comment: id, resolved state, author, the anchored text it was left on — if any — and content). The anchored text lets an agent locate which part of the document a comment refers to. Available to any visitor, matching the doc's open comment-reading behavior.
100
+
101
+ | Parameter | Type | Required | Description |
102
+ |-----------|------|----------|-------------|
103
+ | `slug` | string | yes | 7-character slug or full openmark URL |
104
+
105
+ ### `openmark_resolve_comment`
106
+
107
+ Marks a comment resolved or unresolved. Not restricted to the doc owner, matching the doc's open resolve behavior. There is no tool for editing comment content — only the `resolved` flag can be toggled.
108
+
109
+ | Parameter | Type | Required | Description |
110
+ |-----------|------|----------|-------------|
111
+ | `slug` | string | yes | 7-character slug or full openmark URL |
112
+ | `commentId` | string | yes | The comment id, from `openmark_list_comments` |
113
+ | `resolved` | boolean | yes | `true` to resolve, `false` to unresolve |
114
+
115
+ ### `openmark_delete_comment`
116
+
117
+ Deletes a comment. Restricted to the document owner — returns a 403 error if the API key doesn't belong to the doc's owner.
118
+
119
+ | Parameter | Type | Required | Description |
120
+ |-----------|------|----------|-------------|
121
+ | `slug` | string | yes | 7-character slug or full openmark URL |
122
+ | `commentId` | string | yes | The comment id, from `openmark_list_comments` |
123
+
124
+ ## Local development
125
+
126
+ ```bash
127
+ cd mcp
128
+ npm install
129
+ npm test # run tests once
130
+ npm run test:watch # watch mode
131
+ npm run build # compile TypeScript to dist/
132
+ ```
133
+
134
+ Run the server locally against the production API:
135
+
136
+ ```bash
137
+ OPENMARK_API_KEY=omk_your_key_here node dist/index.js
138
+ ```
139
+
140
+ To test against a local worker dev server, register it in Claude Code CLI:
141
+
142
+ ```bash
143
+ claude mcp add openmark-local \
144
+ -e OPENMARK_API_KEY=omk_your_key_here \
145
+ -e OPENMARK_BASE_URL=http://localhost:8787 \
146
+ -- node /path/to/markdown-reader/mcp/dist/index.js
147
+ ```
148
+
149
+ Then start the worker (`npm run wrangler:dev` from the repo root) and run `claude mcp list` to confirm it's registered.
150
+
151
+ ## Release workflow
152
+
153
+ Releases are triggered by pushing a `mcp/v*.*.*` git tag from the repo root.
154
+
155
+ 1. Make your changes inside `mcp/`
156
+ 2. Run tests: `npm test`
157
+ 3. Bump `version` in `mcp/package.json` (follow semver)
158
+ 4. Commit and tag:
159
+ ```bash
160
+ git add mcp/package.json
161
+ git commit -m "chore: bump mcp to v1.x.x"
162
+ git tag mcp/v1.x.x
163
+ git push origin main --tags
164
+ ```
165
+ 5. CI builds, type-checks, tests, and stages the package to npm
166
+ 6. Go to **npmjs.com → @openmark/mcp → Staged Packages**, review, and **Approve** (requires 2FA)
167
+
168
+ The package publishes under the `latest` tag once approved.
package/dist/index.js CHANGED
@@ -9,7 +9,7 @@ if (!apiKey) {
9
9
  process.stderr.write('Set it in your MCP server config: { "env": { "OPENMARK_API_KEY": "omk_..." } }\n');
10
10
  process.exit(1);
11
11
  }
12
- const baseUrl = process.env.OPENMARK_BASE_URL ?? 'https://app.prathamesh.cloud';
12
+ const baseUrl = process.env.OPENMARK_BASE_URL ?? 'https://openmark.cc';
13
13
  const client = new OpenMarkClient({ apiKey, baseUrl });
14
14
  const server = new McpServer({ name: 'openmark', version: '1.0.0' });
15
15
  registerTools(server, client);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;IACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;IACzG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,8BAA8B,CAAC;AAEhF,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AACvD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAErE,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9B,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;IACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;IACzG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,qBAAqB,CAAC;AAEvE,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AACvD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAErE,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9B,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC"}
@@ -16,6 +16,14 @@ export interface UpdatedDoc {
16
16
  slug: string;
17
17
  url: string;
18
18
  }
19
+ export interface CommentInfo {
20
+ id: string;
21
+ authorName: string;
22
+ content: string;
23
+ anchorText: string | null;
24
+ resolved: boolean;
25
+ createdAt: string;
26
+ }
19
27
  export declare function extractSlug(input: string): string;
20
28
  export declare class OpenMarkClient {
21
29
  private readonly apiKey;
@@ -26,5 +34,8 @@ export declare class OpenMarkClient {
26
34
  createDoc(content: string, title?: string): Promise<CreatedDoc>;
27
35
  readDoc(slugOrUrl: string): Promise<ReadDoc>;
28
36
  updateDoc(slugOrUrl: string, content: string, title?: string): Promise<UpdatedDoc>;
37
+ listComments(slugOrUrl: string): Promise<CommentInfo[]>;
38
+ resolveComment(slugOrUrl: string, commentId: string, resolved: boolean): Promise<void>;
39
+ deleteComment(slugOrUrl: string, commentId: string): Promise<void>;
29
40
  }
30
41
  //# sourceMappingURL=openmarkClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openmarkClient.d.ts","sourceRoot":"","sources":["../src/openmarkClient.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASjD;AAOD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,oBAAoB;IAKxC,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,MAAM;IAIR,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAgB/D,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAY5C,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAgBzF"}
1
+ {"version":3,"file":"openmarkClient.d.ts","sourceRoot":"","sources":["../src/openmarkClient.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASjD;AAOD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,oBAAoB;IAKxC,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,MAAM;IAIR,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAgB/D,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAY5C,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAiBlF,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAYvD,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtF,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CASzE"}
@@ -68,5 +68,27 @@ export class OpenMarkClient {
68
68
  const data = (await res.json());
69
69
  return { slug: data.slug, url: this.docUrl(data.slug) };
70
70
  }
71
+ async listComments(slugOrUrl) {
72
+ const slug = extractSlug(slugOrUrl);
73
+ const res = await fetch(`${this.baseUrl}/api/docs/${encodeURIComponent(slug)}/comments`, {
74
+ headers: { 'X-OpenMark-Key': this.apiKey },
75
+ });
76
+ if (!res.ok)
77
+ await handleErrorResponse(res);
78
+ const data = (await res.json());
79
+ return data.comments;
80
+ }
81
+ async resolveComment(slugOrUrl, commentId, resolved) {
82
+ const slug = extractSlug(slugOrUrl);
83
+ const res = await fetch(`${this.baseUrl}/api/docs/${encodeURIComponent(slug)}/comments/${encodeURIComponent(commentId)}`, { method: 'PATCH', headers: this.authHeaders(), body: JSON.stringify({ resolved }) });
84
+ if (!res.ok)
85
+ await handleErrorResponse(res);
86
+ }
87
+ async deleteComment(slugOrUrl, commentId) {
88
+ const slug = extractSlug(slugOrUrl);
89
+ const res = await fetch(`${this.baseUrl}/api/docs/${encodeURIComponent(slug)}/comments/${encodeURIComponent(commentId)}`, { method: 'DELETE', headers: this.authHeaders() });
90
+ if (!res.ok)
91
+ await handleErrorResponse(res);
92
+ }
71
93
  }
72
94
  //# sourceMappingURL=openmarkClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openmarkClient.js","sourceRoot":"","sources":["../src/openmarkClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openmarkClient.js","sourceRoot":"","sources":["../src/openmarkClient.ts"],"names":[],"mappings":"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"}
package/dist/tools.d.ts CHANGED
@@ -4,6 +4,9 @@ export interface ToolHandlers {
4
4
  openmark_create_doc: (args: Record<string, unknown>) => Promise<string>;
5
5
  openmark_read_doc: (args: Record<string, unknown>) => Promise<string>;
6
6
  openmark_update_doc: (args: Record<string, unknown>) => Promise<string>;
7
+ openmark_list_comments: (args: Record<string, unknown>) => Promise<string>;
8
+ openmark_resolve_comment: (args: Record<string, unknown>) => Promise<string>;
9
+ openmark_delete_comment: (args: Record<string, unknown>) => Promise<string>;
7
10
  }
8
11
  export declare function buildToolHandlers(client: OpenMarkClient): ToolHandlers;
9
12
  export declare function registerTools(server: McpServer, client: OpenMarkClient): void;
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAiB1D,MAAM,WAAW,YAAY;IAC3B,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACxE,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtE,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACzE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,YAAY,CAyBtE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CA6B7E"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAgC1D,MAAM,WAAW,YAAY;IAC3B,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACxE,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtE,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACxE,sBAAsB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3E,wBAAwB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7E,uBAAuB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7E;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,YAAY,CA0DtE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CA+D7E"}
package/dist/tools.js CHANGED
@@ -11,6 +11,18 @@ const updateDocSchema = z.object({
11
11
  content: z.string().min(1, 'content is required'),
12
12
  title: z.string().max(300).optional(),
13
13
  });
14
+ const listCommentsSchema = z.object({
15
+ slug: z.string().min(1, 'slug is required'),
16
+ });
17
+ const resolveCommentSchema = z.object({
18
+ slug: z.string().min(1, 'slug is required'),
19
+ commentId: z.string().min(1, 'commentId is required'),
20
+ resolved: z.boolean(),
21
+ });
22
+ const deleteCommentSchema = z.object({
23
+ slug: z.string().min(1, 'slug is required'),
24
+ commentId: z.string().min(1, 'commentId is required'),
25
+ });
14
26
  export function buildToolHandlers(client) {
15
27
  async function openmark_create_doc(args) {
16
28
  const { content, title } = createDocSchema.parse(args);
@@ -32,7 +44,36 @@ export function buildToolHandlers(client) {
32
44
  const result = await client.updateDoc(slug, content, title);
33
45
  return `Updated: ${result.url}`;
34
46
  }
35
- return { openmark_create_doc, openmark_read_doc, openmark_update_doc };
47
+ async function openmark_list_comments(args) {
48
+ const { slug } = listCommentsSchema.parse(args);
49
+ const comments = await client.listComments(slug);
50
+ if (comments.length === 0)
51
+ return 'No comments on this document.';
52
+ return comments
53
+ .map((c) => {
54
+ const anchor = c.anchorText ? ` (on: "${c.anchorText}")` : '';
55
+ return `[${c.id}] ${c.resolved ? 'resolved' : 'open'} — ${c.authorName}${anchor}: ${c.content}`;
56
+ })
57
+ .join('\n');
58
+ }
59
+ async function openmark_resolve_comment(args) {
60
+ const { slug, commentId, resolved } = resolveCommentSchema.parse(args);
61
+ await client.resolveComment(slug, commentId, resolved);
62
+ return `Comment ${commentId} marked ${resolved ? 'resolved' : 'unresolved'}`;
63
+ }
64
+ async function openmark_delete_comment(args) {
65
+ const { slug, commentId } = deleteCommentSchema.parse(args);
66
+ await client.deleteComment(slug, commentId);
67
+ return `Deleted comment ${commentId}`;
68
+ }
69
+ return {
70
+ openmark_create_doc,
71
+ openmark_read_doc,
72
+ openmark_update_doc,
73
+ openmark_list_comments,
74
+ openmark_resolve_comment,
75
+ openmark_delete_comment,
76
+ };
36
77
  }
37
78
  export function registerTools(server, client) {
38
79
  const handlers = buildToolHandlers(client);
@@ -45,5 +86,21 @@ export function registerTools(server, client) {
45
86
  server.tool('openmark_update_doc', 'Replace the content of an existing openmark document you own.', { slug: z.string().describe('The 7-char slug or full openmark URL'), content: z.string().describe('New markdown content'), title: z.string().max(300).optional().describe('New title (omit to leave unchanged)') }, async ({ slug, content, title }) => ({
46
87
  content: [{ type: 'text', text: await handlers.openmark_update_doc({ slug, content, title }) }],
47
88
  }));
89
+ server.tool('openmark_list_comments', 'List comments left on an openmark document.', { slug: z.string().describe('The 7-char slug or full openmark URL') }, async ({ slug }) => ({
90
+ content: [{ type: 'text', text: await handlers.openmark_list_comments({ slug }) }],
91
+ }));
92
+ server.tool('openmark_resolve_comment', 'Mark a comment on an openmark document as resolved or unresolved.', {
93
+ slug: z.string().describe('The 7-char slug or full openmark URL'),
94
+ commentId: z.string().describe('The comment id, from openmark_list_comments'),
95
+ resolved: z.boolean().describe('true to resolve, false to unresolve'),
96
+ }, async ({ slug, commentId, resolved }) => ({
97
+ content: [{ type: 'text', text: await handlers.openmark_resolve_comment({ slug, commentId, resolved }) }],
98
+ }));
99
+ server.tool('openmark_delete_comment', 'Delete a comment on an openmark document you own.', {
100
+ slug: z.string().describe('The 7-char slug or full openmark URL'),
101
+ commentId: z.string().describe('The comment id, from openmark_list_comments'),
102
+ }, async ({ slug, commentId }) => ({
103
+ content: [{ type: 'text', text: await handlers.openmark_delete_comment({ slug, commentId }) }],
104
+ }));
48
105
  }
49
106
  //# sourceMappingURL=tools.js.map
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openmark/mcp",
3
- "version": "1.0.3",
3
+ "version": "1.1.1",
4
4
  "description": "MCP server for openmark — lets AI coding agents create, read, and update markdown documents",
5
5
  "type": "module",
6
6
  "bin": {
@@ -34,5 +34,9 @@
34
34
  "cursor",
35
35
  "ai"
36
36
  ],
37
- "license": "MIT"
37
+ "license": "MIT",
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "https://github.com/prathamudeshmukh/markdown-reader"
41
+ }
38
42
  }