← all servers

markitdown

v1.8.1 · 1 tools · source

[ tools: 1 ][ checks: 13 ][ latency: 5ms ]
73/100(C)
uvx markitdown-mcp

check breakdown

Tools exposedServer exposed 1 tool.
• convert_to_markdown
Input schemas validAll tools have a valid JSON-Schema input definition.
!Input schema quality2 schema-quality issue(s) across 1 tool(s).
convert_to_markdown.uri: parameter has no description
convert_to_markdown: inputSchema.additionalProperties is not set to false (extra args pass through silently)
Declare `required` for every schema that has properties, so agents know which params are mandatory.
Give every property a `description` and a concrete `type` (avoid bare `{}` placeholders).
Set `additionalProperties: false` on the top-level inputSchema so models can't silently pass extra, unvalidated arguments.
!Output schemasNo tools declare an outputSchema.
Optional: declare outputSchema for tools with structured results so agents can validate/parse output reliably.
Duplicate tool namesAll tool names are unique.
Tool namingAll tool names use spec-legal characters.
!Descriptions1 description issue(s) found.
convert_to_markdown.uri: parameter has no description
Descriptions are the model's only guide to when/how to call a tool — treat them as prompt engineering.
Describe every tool and every parameter, including units, formats, and constraints.
Each tool's description should say something the name doesn't, and should be unique to that tool.
!Tool annotationsAnnotation coverage 0% (0/5 hint fields set).
• convert_to_markdown: no annotations at all
Add annotations: title, readOnlyHint, destructiveHint, idempotentHint, openWorldHint.
These let clients gate risky calls and give agents/users a friendly display name — optional but valuable.
!Tool titles1 of 1 tool(s) have no title.
• convert_to_markdown: no top-level title (or annotations.title)
Declare a top-level `title` on each tool — it gives clients a friendly display name distinct from the machine-readable `name`.
`annotations.title` (the older location) is also accepted, but the top-level `title` field is now the spec-preferred place for it.
!Server instructionsNo top-level instructions declared.
Declare instructions to guide agents on when/how to use this server.
Return a non-empty `instructions` string in your InitializeResult — most SDKs let you set this alongside serverInfo.
Handshake + list latencytools/list responded in 5ms.
!PromptsServer declares the prompts capability but exposes 0 prompts.
If you don't actually offer prompts, remove the `prompts` capability from your initialize response.
Otherwise, register at least one prompt via your prompts/list handler.
!ResourcesServer declares the resources capability but exposes 0 resources.
If you don't actually offer resources, remove the `resources` capability from your initialize response.
Otherwise, register at least one resource (or resource template) via your resources/list handler.

add the badge

Paste into your README:

[![scoremcp](https://scoremcp.dev/badge/markitdown-mcp)](https://scoremcp.dev/servers/markitdown-mcp)
[ scoremcp v0.4.0 ] [ 35 servers indexed ] [ static · side-effect-free ]