md-feedback 0.9.9 → 1.0.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 CHANGED
@@ -28,22 +28,23 @@ Add to your MCP client config (Claude Code, Cursor, etc.):
28
28
 
29
29
  That's it. No install, no setup — `npx` handles everything.
30
30
 
31
- ## 12 MCP Tools
31
+ ## 13 MCP Tools
32
32
 
33
33
  | Tool | Description |
34
34
  |------|-------------|
35
35
  | `get_document_structure` | Full review state: memos, gates, cursor, sections, summary |
36
36
  | `list_annotations` | All annotations with type/status/owner/color |
37
37
  | `get_review_status` | Annotation counts and session status |
38
- | `update_memo_status` | Mark a memo as open/answered/done/wontfix |
38
+ | `create_annotation` | Create annotation programmatically with anchor search |
39
+ | `respond_to_memo` | Add AI response to an annotation |
40
+ | `update_memo_status` | Mark a memo as open/answered/wontfix |
39
41
  | `update_cursor` | Set plan cursor position (task ID, step, next action) |
40
42
  | `evaluate_gates` | Check if merge/release/implement conditions are met |
41
43
  | `export_review` | Export for a specific AI tool format |
42
- | `create_checkpoint` | Save review progress |
44
+ | `create_checkpoint` | Save review progress snapshot |
43
45
  | `get_checkpoints` | List all checkpoints |
44
46
  | `generate_handoff` | Generate structured handoff document |
45
47
  | `pickup_handoff` | Parse existing handoff for session resumption |
46
- | `create_annotation` | Create annotation programmatically |
47
48
 
48
49
  ## How It Works
49
50
 
@@ -21416,6 +21416,7 @@ function reinsertMemosAndResponses(body, memos, responses) {
21416
21416
  for (const memo of memos) {
21417
21417
  const lineIdx = findMemoAnchorLine(lines, memo);
21418
21418
  if (lineIdx >= 0) {
21419
+ memo.anchor = `L${lineIdx + 1}|${hashLine(lines[lineIdx])}`;
21419
21420
  const existing = memoMap.get(lineIdx) || [];
21420
21421
  existing.push(memo);
21421
21422
  memoMap.set(lineIdx, existing);
@@ -21643,19 +21644,6 @@ function getAnnotationCounts(markdown) {
21643
21644
  else if (color === "blue") questions++;
21644
21645
  else highlights++;
21645
21646
  }
21646
- let m;
21647
- const markRe = /<mark[^>]*style="background-color:\s*([^"]+)"[^>]*>/g;
21648
- while ((m = markRe.exec(markdown)) !== null) {
21649
- const hex = m[1].trim();
21650
- const cn = HEX_TO_COLOR_NAME[hex];
21651
- if (cn === "red") fixes++;
21652
- else if (cn === "blue") questions++;
21653
- else highlights++;
21654
- }
21655
- const eqRe = /(?<!`)==(?!.*==.*`)(.+?)==(?!`)/g;
21656
- while (eqRe.exec(markdown) !== null) {
21657
- highlights++;
21658
- }
21659
21647
  return { fixes, questions, highlights };
21660
21648
  }
21661
21649
  function getSectionsWithAnnotations(markdown) {
@@ -22678,13 +22666,13 @@ function log(msg) {
22678
22666
  }
22679
22667
  var server = new McpServer({
22680
22668
  name: "md-feedback",
22681
- version: "0.9.9"
22669
+ version: "1.0.1"
22682
22670
  });
22683
22671
  registerTools(server);
22684
22672
  async function main() {
22685
22673
  const transport = new StdioServerTransport();
22686
22674
  await server.connect(transport);
22687
- log(`v${"0.9.9"} ready (stdio)`);
22675
+ log(`v${"1.0.1"} ready (stdio)`);
22688
22676
  }
22689
22677
  main().catch((err) => {
22690
22678
  log(`fatal: ${err}`);
package/package.json CHANGED
@@ -1,63 +1,70 @@
1
- {
2
- "name": "md-feedback",
3
- "version": "0.9.9",
4
- "description": "MCP server for AI plan review — agents read your markdown annotations, mark tasks done, evaluate gates, and generate handoffs.",
5
- "license": "SUL-1.0",
6
- "author": "Yeomin Seon",
7
- "type": "commonjs",
8
- "bin": {
9
- "md-feedback": "./bin/md-feedback.cjs"
10
- },
11
- "files": [
12
- "dist/mcp-server.js",
13
- "bin/md-feedback.cjs",
14
- "README.md"
15
- ],
16
- "scripts": {
17
- "build": "node esbuild.mjs"
18
- },
19
- "dependencies": {
20
- "@modelcontextprotocol/sdk": "^1.12.0",
21
- "zod": "^3.23.0"
22
- },
23
- "devDependencies": {
24
- "esbuild": "^0.24.2",
25
- "typescript": "^5.7.0"
26
- },
27
- "engines": {
28
- "node": ">=18"
29
- },
30
- "repository": {
31
- "type": "git",
32
- "url": "https://github.com/yeominux/md-feedback"
33
- },
34
- "bugs": {
35
- "url": "https://github.com/yeominux/md-feedback/issues"
36
- },
37
- "homepage": "https://github.com/yeominux/md-feedback#mcp-server",
38
- "keywords": [
39
- "mcp",
40
- "mcp-server",
41
- "model-context-protocol",
42
- "markdown",
43
- "feedback",
44
- "ai",
45
- "annotation",
46
- "review",
47
- "plan-review",
48
- "ai-agent",
49
- "coding-workflow",
50
- "handoff",
51
- "session-handoff",
52
- "structured-feedback",
53
- "checkpoint",
54
- "ai-context",
55
- "ai-coding",
56
- "claude-code",
57
- "cursor-ai",
58
- "vibe-coding",
59
- "context-engineering",
60
- "gates",
61
- "plan-review-tool"
62
- ]
63
- }
1
+ {
2
+ "name": "md-feedback",
3
+ "version": "1.0.1",
4
+ "description": "MCP server for markdown plan review — AI agents read annotations, mark tasks done, evaluate quality gates, and generate session handoffs. 13 tools for Claude Code, Cursor, Copilot, and 8 more AI tools.",
5
+ "license": "SUL-1.0",
6
+ "author": "Yeomin Seon",
7
+ "type": "commonjs",
8
+ "bin": {
9
+ "md-feedback": "./bin/md-feedback.cjs"
10
+ },
11
+ "files": [
12
+ "dist/mcp-server.js",
13
+ "bin/md-feedback.cjs",
14
+ "README.md"
15
+ ],
16
+ "scripts": {
17
+ "build": "node esbuild.mjs"
18
+ },
19
+ "dependencies": {
20
+ "@modelcontextprotocol/sdk": "^1.12.0",
21
+ "zod": "^3.23.0"
22
+ },
23
+ "devDependencies": {
24
+ "esbuild": "^0.24.2",
25
+ "typescript": "^5.7.0"
26
+ },
27
+ "engines": {
28
+ "node": ">=18"
29
+ },
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "https://github.com/yeominux/md-feedback"
33
+ },
34
+ "bugs": {
35
+ "url": "https://github.com/yeominux/md-feedback/issues"
36
+ },
37
+ "homepage": "https://github.com/yeominux/md-feedback#mcp-server",
38
+ "keywords": [
39
+ "mcp",
40
+ "mcp-server",
41
+ "model-context-protocol",
42
+ "markdown",
43
+ "feedback",
44
+ "ai",
45
+ "annotation",
46
+ "review",
47
+ "plan-review",
48
+ "ai-agent",
49
+ "coding-workflow",
50
+ "handoff",
51
+ "session-handoff",
52
+ "structured-feedback",
53
+ "checkpoint",
54
+ "ai-context",
55
+ "ai-coding",
56
+ "claude-code",
57
+ "cursor-ai",
58
+ "vibe-coding",
59
+ "context-engineering",
60
+ "gates",
61
+ "plan-review-tool",
62
+ "document-annotation",
63
+ "code-review",
64
+ "ai-workflow",
65
+ "copilot",
66
+ "markdown-review",
67
+ "developer-tools",
68
+ "quality-gate"
69
+ ]
70
+ }