From ccf2f517a26642207297ac27f34a2a469d327d72 Mon Sep 17 00:00:00 2001 From: Kiko Beats Date: Thu, 17 Sep 2026 11:11:33 +0200 Subject: [PATCH 1/2] refactor(mcp): shorten product tool descriptions Parameters already live in JSON Schema and microlink_docs; repeating them on every tool burns tokens and undercuts the docs tool. Co-authored-by: Cursor --- packages/mcp/src/index.js | 7 ++++--- packages/mcp/src/tools/audio.js | 7 +------ packages/mcp/src/tools/audios.js | 6 +----- packages/mcp/src/tools/docs.js | 6 +----- packages/mcp/src/tools/emails.js | 6 +----- packages/mcp/src/tools/embed.js | 7 +------ packages/mcp/src/tools/extract.js | 7 +------ packages/mcp/src/tools/function.js | 7 +------ packages/mcp/src/tools/html.js | 7 +------ packages/mcp/src/tools/images.js | 6 +----- packages/mcp/src/tools/lighthouse.js | 6 +----- packages/mcp/src/tools/links.js | 6 +----- packages/mcp/src/tools/logo.js | 7 +------ packages/mcp/src/tools/markdown.js | 7 +------ packages/mcp/src/tools/metadata.js | 7 +------ packages/mcp/src/tools/pdf.js | 8 +------- packages/mcp/src/tools/screenshot.js | 10 +--------- packages/mcp/src/tools/search.js | 7 +------ packages/mcp/src/tools/technologies.js | 6 +----- packages/mcp/src/tools/text.js | 7 +------ packages/mcp/src/tools/video.js | 7 +------ packages/mcp/src/tools/videos.js | 6 +----- packages/mcp/test/stdio-server.test.js | 1 + packages/mcp/test/tools.test.js | 16 ++++++++++++++++ 24 files changed, 42 insertions(+), 125 deletions(-) diff --git a/packages/mcp/src/index.js b/packages/mcp/src/index.js index d3af2c1..d9ce459 100644 --- a/packages/mcp/src/index.js +++ b/packages/mcp/src/index.js @@ -9,9 +9,10 @@ const require = createRequire(import.meta.url) const { version: pkgVersion } = require('../package.json') const DEFAULT_INSTRUCTIONS = [ - 'Turn any public URL into screenshots, PDFs, metadata, readable content (Markdown, HTML or plain text), media sources, technology stacks, Lighthouse audits, Google search results or custom-scraped fields.', - 'Always pass full URLs including the protocol.', - "If you are unsure of a product tool's parameters, call microlink_docs first.", + 'Product tools turn a public URL into a Microlink result. Always pass full URLs including the protocol.', + "Call microlink_docs({ product }) for a product tool's parameters; do not guess nested options.", + 'video/audio return the primary playable asset; videos/audios/links/images collect every match on the page.', + 'extract is custom MQL rules, not full-page markdown/html/text. search takes a query. Checkout tools buy an API key.', 'Without an API key, requests use the free endpoint (50 requests/day); pass apiKey or set MICROLINK_API_KEY for PRO.', 'On failure, read the error message and the hint/reason fields and adjust the request instead of retrying blindly.' ].join(' ') diff --git a/packages/mcp/src/tools/audio.js b/packages/mcp/src/tools/audio.js index 03cfacd..212f2f2 100644 --- a/packages/mcp/src/tools/audio.js +++ b/packages/mcp/src/tools/audio.js @@ -5,12 +5,7 @@ export function audio (server) { register( server, 'microlink_audio', - [ - 'Detect the primary playable audio of any public URL via Microlink.', - 'Works with SoundCloud, Spotify, Mixcloud, and other audio platforms.', - 'Returns the audio asset: `url`, `type`, `duration`, `size`, `duration_pretty`, `size_pretty`.', - 'Mirrors the `microlink.audio(url)` library method. For every audio on the page, use `microlink_audios`.' - ].join(' '), + 'Primary playable audio asset. For every audio URL on the page, use microlink_audios.', audioInputSchema, urlMethod('audio') ) diff --git a/packages/mcp/src/tools/audios.js b/packages/mcp/src/tools/audios.js index b0df3cd..a4daa3f 100644 --- a/packages/mcp/src/tools/audios.js +++ b/packages/mcp/src/tools/audios.js @@ -5,11 +5,7 @@ export function audios (server) { register( server, 'microlink_audios', - [ - 'Collect every audio source (`