{"serverId":"mcp-registry/io.github.djrobson5/agentmd","tools":[{"name":"convert_document_to_markdown","fixed":{"name":"convert_document_to_markdown","description":"Convert a document you already have (PDF, DOCX, HTML, plain text) to clean, LLM-ready markdown. Pass the file contents as base64. Supports reading only part of a large document: PDF page ranges, a heading outline, a single section, or a token cap.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["base64"],"properties":{"mode":{"enum":["full","outline"],"type":"string","description":"\"full\" (default) returns the document body. \"outline\" returns just the heading tree — each line is `- [#3] Heading text (~120 tokens)`. For a long document, call with mode: 'outline' first, then fetch only what you need with section: '#3' or a heading title."},"pages":{"type":"string","description":"PDFs only: 1-indexed, inclusive page ranges to convert, e.g. \"1-3,5,8-\" (an open-ended range runs to the last page). Ignored with a warning for non-PDF formats."},"base64":{"type":"string","description":"Base64-encoded file contents"},"section":{"type":"string","description":"Return only one section: either \"#<n>\" using the index from a mode: 'outline' call (e.g. '#3'), or the heading text itself (case-insensitive; exact match wins, then prefix, then substring). Ignored when mode is 'outline'."},"filename":{"type":"string","description":"Original filename, e.g. report.pdf — helps format detection"},"maxTokens":{"type":"integer","maximum":9007199254740991,"description":"Cap the returned markdown at roughly this many tokens, cutting at a paragraph boundary. When the output is cut, the result starts with a `> Truncated: ~X of ~Y tokens` line — narrow with pages or section rather than raising this.","exclusiveMinimum":0}}},"annotations":{"readOnlyHint":true},"title":"Convert document to markdown"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":482,"tokensAfter":482},{"name":"convert_url_to_markdown","fixed":{"name":"convert_url_to_markdown","description":"Fetch a URL (web page, PDF, DOCX, etc.) and convert it to clean, LLM-ready markdown. Extracts the main article content from web pages and preserves tables. Supports reading only part of a large document: PDF page ranges, a heading outline, a single section, or a token cap.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["url"],"properties":{"url":{"type":"string","description":"The http(s) URL of the document or page to convert"},"mode":{"enum":["full","outline"],"type":"string","description":"\"full\" (default) returns the document body. \"outline\" returns just the heading tree — each line is `- [#3] Heading text (~120 tokens)`. For a long document, call with mode: 'outline' first, then fetch only what you need with section: '#3' or a heading title."},"pages":{"type":"string","description":"PDFs only: 1-indexed, inclusive page ranges to convert, e.g. \"1-3,5,8-\" (an open-ended range runs to the last page). Ignored with a warning for non-PDF formats."},"section":{"type":"string","description":"Return only one section: either \"#<n>\" using the index from a mode: 'outline' call (e.g. '#3'), or the heading text itself (case-insensitive; exact match wins, then prefix, then substring). Ignored when mode is 'outline'."},"maxTokens":{"type":"integer","maximum":9007199254740991,"description":"Cap the returned markdown at roughly this many tokens, cutting at a paragraph boundary. When the output is cut, the result starts with a `> Truncated: ~X of ~Y tokens` line — narrow with pages or section rather than raising this.","exclusiveMinimum":0}}},"annotations":{"readOnlyHint":true},"title":"Convert URL to markdown"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":463,"tokensAfter":463}],"toolsChanged":2,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}