mediawiki-mcp-server
[ tools: 29 ][ checks: 12 ][ latency: 15ms ]
93/100(A)
npx -y @professional-wiki/mediawiki-mcp-server
check breakdown
✓Tools exposed — Server exposed 29 tools.
• get-page
• get-pages
• get-page-history
• get-recent-changes
• search-page
• search-page-by-prefix
• parse-wikitext
• compare-pages
• get-file
• get-file-data
• get-revision
• get-site-info
• get-category-members
• get-links-here
• list-wikis
• whoami
• create-page
• update-page
• move-page
• delete-page
• undelete-page
• upload-file
• upload-file-from-url
• update-file
• update-file-from-url
• oauth-status
• oauth-logout
• add-wiki
• remove-wiki
✓Input schemas valid — All tools have a valid JSON-Schema input definition.
!Input schema quality — 32 schema-quality issue(s) across 29 tool(s).
get-page: inputSchema.additionalProperties is not set to false (extra args pass through silently)
get-pages: inputSchema.additionalProperties is not set to false (extra args pass through silently)
get-page-history: inputSchema.additionalProperties is not set to false (extra args pass through silently)
get-recent-changes: no "required" array (which params are mandatory?)
get-recent-changes: inputSchema.additionalProperties is not set to false (extra args pass through silently)
search-page: inputSchema.additionalProperties is not set to false (extra args pass through silently)
search-page-by-prefix: inputSchema.additionalProperties is not set to false (extra args pass through silently)
parse-wikitext: inputSchema.additionalProperties is not set to false (extra args pass through silently)
compare-pages: no "required" array (which params are mandatory?)
compare-pages: inputSchema.additionalProperties is not set to false (extra args pass through silently)
get-file: inputSchema.additionalProperties is not set to false (extra args pass through silently)
get-file-data: inputSchema.additionalProperties is not set to false (extra args pass through silently)
get-revision: inputSchema.additionalProperties is not set to false (extra args pass through silently)
get-site-info: no "required" array (which params are mandatory?)
get-site-info: inputSchema.additionalProperties is not set to false (extra args pass through silently)
get-category-members: inputSchema.additionalProperties is not set to false (extra args pass through silently)
get-links-here: inputSchema.additionalProperties is not set to false (extra args pass through silently)
whoami: no "required" array (which params are mandatory?)
whoami: inputSchema.additionalProperties is not set to false (extra args pass through silently)
create-page: inputSchema.additionalProperties is not set to false (extra args pass through silently)
update-page: inputSchema.additionalProperties is not set to false (extra args pass through silently)
move-page: inputSchema.additionalProperties is not set to false (extra args pass through silently)
delete-page: inputSchema.additionalProperties is not set to false (extra args pass through silently)
undelete-page: inputSchema.additionalProperties is not set to false (extra args pass through silently)
upload-file: inputSchema.additionalProperties is not set to false (extra args pass through silently)
upload-file-from-url: inputSchema.additionalProperties is not set to false (extra args pass through silently)
update-file: inputSchema.additionalProperties is not set to false (extra args pass through silently)
update-file-from-url: inputSchema.additionalProperties is not set to false (extra args pass through silently)
oauth-logout: no "required" array (which params are mandatory?)
oauth-logout: inputSchema.additionalProperties is not set to false (extra args pass through silently)
add-wiki: inputSchema.additionalProperties is not set to false (extra args pass through silently)
remove-wiki: 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 schemas — No tools declare an outputSchema.
→ Optional: declare outputSchema for tools with structured results so agents can validate/parse output reliably.
✓Duplicate tool names — All tool names are unique.
✓Tool naming — All tool names use spec-legal characters.
Advisory (not scored): 28 name(s) aren't lower_snake_case — consistent lower_snake_case tends to help model tool-selection reliability, though mixed case, digits, underscores, hyphens, and dots are all spec-legal.
• "get-page"
• "get-pages"
• "get-page-history"
• "get-recent-changes"
• "search-page"
• "search-page-by-prefix"
• "parse-wikitext"
• "compare-pages"
• "get-file"
• "get-file-data"
• "get-revision"
• "get-site-info"
• "get-category-members"
• "get-links-here"
• "list-wikis"
• "create-page"
• "update-page"
• "move-page"
• "delete-page"
• "undelete-page"
• "upload-file"
• "upload-file-from-url"
• "update-file"
• "update-file-from-url"
• "oauth-status"
• "oauth-logout"
• "add-wiki"
• "remove-wiki"
!Descriptions — 1 description issue(s) found.
get-revision.revisionId: parameter description very short ("Revision ID")
→ 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 annotations — Tools fully declare behavioural hints (title, readOnly, destructive, idempotent, openWorld).
✓Tool titles — All tools declare a human-readable title.
✓Server instructions — Server declares top-level instructions for clients.
✓Handshake + list latency — tools/list responded in 15ms.
!Resources — 4 resource-quality issue(s) across 2 resource(s) and 1 template(s).
mcp://wikis/en.wikipedia.org: no mimeType declared
mcp://wikis/localhost:8080: no mimeType declared
mcp://wikis/{wikiKey}: no description or title
mcp://wikis/{wikiKey}: no mimeType declared
→ Give every resource a name, a valid uri, a description or title, and a mimeType.
→ Give every resource template a name, a description or title, a uriTemplate with at least one {variable} placeholder, and a mimeType.
→ mimeType is advisory but helps agents decide how to handle the resource content.
add the badge
Paste into your README:
[](https://scoremcp.dev/servers/mediawiki-mcp-server)