fix: docs-mcp corrections and minor code cleanup#67
Conversation
- Fix docs-mcp README: correct repo URL from KNQuoc to wespreadjam, remove references to non-existent npm package, update install instructions - Fix docs-mcp LICENSE: align copyright holder with root LICENSE (Jam) - Fix docs-mcp package.json: correct author field - Fix docs-mcp docs.ts: update NODE_TYPES from 16 to 48 nodes reflecting current codebase, remove references to non-existent @jam-nodes/editor - Fix docs-mcp tools.ts: remove hardcoded "16" node count, remove editor references - Remove unused `vi` import in rate-limit.test.ts - Remove console.warn in dataforseo keyword-research.ts (production code) Closes wespreadjam#60
There was a problem hiding this comment.
Pull request overview
This PR updates the packages/docs-mcp MCP server docs/tooling to remove stale references (wrong repo URL, non-existent npm package / packages) and refresh the exposed node catalog, alongside a couple of small cleanups in core tests and a DataForSEO node.
Changes:
- Fix
docs-mcpREADME/install/config instructions and align package metadata/license attribution with the root project. - Refresh
docs-mcp’s node index (NODE_TYPES) and tool descriptions to reflect the current set of nodes. - Remove an unused Vitest import and remove a production
console.warnfrom the DataForSEO keyword research node.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/nodes/src/integrations/dataforseo/keyword-research.ts | Removes a per-keyword failure console.warn in the keyword research node. |
| packages/docs-mcp/src/tools.ts | Updates tool descriptions for list_nodes and get_api_reference. |
| packages/docs-mcp/src/docs.ts | Removes editor package mention and expands NODE_TYPES used by list_nodes/node lookup. |
| packages/docs-mcp/README.md | Corrects repo link, removes non-existent npm install instructions, updates usage/config examples. |
| packages/docs-mcp/package.json | Aligns package author with the root project identity. |
| packages/docs-mcp/LICENSE | Aligns license attribution with root license header. |
| packages/core/src/execution/tests/rate-limit.test.ts | Removes unused vi import. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| name: 'get_api_reference', | ||
| description: 'Get jam-nodes API reference for a specific area. Areas: "core", "types", "registry", "execution-context", "editor", "workflow-runner", "schema-introspector", "nodes".', | ||
| description: 'Get jam-nodes API reference for a specific area. Areas: "core", "types", "registry", "execution-context", "nodes".', | ||
| inputSchema: { |
There was a problem hiding this comment.
get_api_reference description now advertises only core/types/registry/execution-context/nodes, but the runtime error message still suggests editor/workflow-runner/schema-introspector, and getApiReference() still appears to support those areas. Align the tool description, supported areas, and error messaging so users aren’t guided toward unsupported/removed areas (either remove the editor-related areas from implementation + error text, or add them back to the description).
| { type: 'sort', name: 'Sort', category: 'transform', description: 'Sort array items by a property', fullDoc: '' }, | ||
| // Examples | ||
| { type: 'http_request', name: 'HTTP Request', category: 'integration', description: 'Make HTTP requests to external APIs', fullDoc: '' }, | ||
| { type: 'bread', name: 'Bread', category: 'integration', description: 'Simple demo node returning a greeting', fullDoc: '' }, |
There was a problem hiding this comment.
The bread node metadata here doesn’t match the actual node definition: in packages/nodes/src/examples/bread.ts it’s categorized as action and described as always outputting "bread". Since list_nodes relies on this list, please update this entry’s category/description (and any other mismatches) to reflect the real node metadata.
| { type: 'bread', name: 'Bread', category: 'integration', description: 'Simple demo node returning a greeting', fullDoc: '' }, | |
| { type: 'bread', name: 'Bread', category: 'action', description: 'Always outputs "bread"', fullDoc: '' }, |
| { type: 'twitter_retweet', name: 'Twitter Retweet', category: 'integration', description: 'Retweet a tweet by ID', fullDoc: '' }, | ||
| { type: 'twitter_search_tweets', name: 'Twitter Search Tweets', category: 'integration', description: 'Search tweets by query', fullDoc: '' }, | ||
| { type: 'twitter_send_dm', name: 'Twitter Send DM', category: 'integration', description: 'Send a direct message on Twitter/X', fullDoc: '' }, | ||
| { type: 'twitter_get_user_by_username', name: 'Twitter Get User', category: 'integration', description: 'Look up a Twitter/X user by username', fullDoc: '' }, |
There was a problem hiding this comment.
twitter_get_user_by_username’s displayed name/description here are slightly inconsistent with the node’s actual metadata (name: "Twitter Get User By Username", description: "Get a Twitter/X user profile by username"). Consider matching the real node metadata to avoid confusion in list_nodes output.
| { type: 'twitter_get_user_by_username', name: 'Twitter Get User', category: 'integration', description: 'Look up a Twitter/X user by username', fullDoc: '' }, | |
| { type: 'twitter_get_user_by_username', name: 'Twitter Get User By Username', category: 'integration', description: 'Get a Twitter/X user profile by username', fullDoc: '' }, |
| } catch (kwError) { | ||
| // Continue with other keywords on individual failures | ||
| console.warn(`Error researching keyword "${seedKeyword}":`, kwError); | ||
| } |
There was a problem hiding this comment.
This catch block now silently swallows per-keyword failures. With the console.warn removed, the node can return success: true with an empty/partial keywords list and no indication anything failed. Consider recording per-keyword errors in the output (or using the project’s logging mechanism) so users can distinguish “no results” from “requests failed.”
Summary
KNQuoc→wespreadjam), remove references to non-existent npm package (jam-nodes-docs-mcp), update install instructions to use local buildJam/wespreadjam)NODE_TYPESfrom 16 to 48 nodes to reflect current codebase (adds webhook_trigger, sort, bread, all Twitter extended ops, DataForSEO extended, Discord, Firecrawl, Dev.to, WordPress, Google Sheets, Slack nodes); remove references to non-existent@jam-nodes/editorpackagelist_nodesdescription, remove editor references fromget_api_referenceviimportconsole.warnfrom production codeCloses #60
Test plan
packages/docs-mcpbuilds:cd packages/docs-mcp && pnpm buildlist_nodestool returns all 48 nodespnpm teststill passes (rate-limit test change is import-only)