A side-by-side look at the Geomelon MCP and PDF Reader MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Geomelon MCP for location services work as a local process; choose PDF Reader MCP for developer tools as a local process. You can also run both side by side in one mcpServers block.
GEOMELON_API_KEY, PORT.search_cities, get_city, get_city_translations.inspect, outline, read.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Location Services | Developer Tools |
| Quality signal | 52/100 · Good | 69/100 · Great |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | API key required | Not declared |
| Pricing | Freemium | Not declared |
| Required env vars | GEOMELON_API_KEYPORT | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 1 | 1,040 |
| Directory activity | 3 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 22 | 4 |
| Full listing | View Geomelon MCP | View PDF Reader MCP |
search_citiesSearch by name, country code, region, population range, sort orderget_cityFull details for a city by UUIDget_city_translationsAll name translations for a city by UUIDget_city_settlement_typesSettlement-type classifications for a city by UUIDcities_by_coordinates_closestCities nearest to a lat/lon, ordered by distancecities_by_coordinates_largestLargest cities near a lat/lon, ordered by populationcities_distanceDistance in km between two citieslist_countriesList countries, filter by name prefix or telephone dialing codeget_countryFull details for a country by UUID (includes translations and regions)get_country_translationsName translations for a country by UUIDget_country_regionsAll administrative regions for a country by UUIDlist_regionsList regions, filter by country UUIDinspectDocument and media evidence when Markdown is not enough. video_timeline (bounded scene/cue timeline) and render_frame (actual decoded frames), and cite_check (quote/location support, not semantic truth), are anymd Pro; PDF operations: inspect (page facts, metadata), render_page (PNG images), extract_regions (crop bounding boxes), ocr_pages / analyze_regions (configured OCR or vision provider), structure (JSON with document map, elements, geometry; profile quality|research adds trust and accessibility reports), compare (page-level diff of sources[0] vs sources[1]).outlineReturn a document heading tree with stable node ids, title paths, page/slide/chapter ranges and Markdown byte ranges. PDF bookmarks or detected headings, Word headings, PowerPoint slides, EPUB chapters and headings, HTML and Markdown. format json (default) or tree. Pass a node id to read to fetch that section.readRead any document as clean Markdown: PDF, Word (DOCX), PowerPoint (PPTX), Excel (XLSX/XLS/ODS), CSV, EPUB, HTML or a web URL, Markdown/text, images (metadata + OCR), audio/video (metadata, chapters, subtitles). Pages/slides/sheets carry <!-- page N --> style markers for citation. Long documents stop at max_tokens (default 20000) and end with a cursor to continue; choose pages with pages: "1-5,8". A directory returns its readable files.searchSearch documents for text: one file, many files, whole directories (recursive, .gitignore aware), or URLs, across every format read supports. Returns each hit as file + page/slide/sheet + a snippet with the match in bold. mode auto (default) finds the exact phrase and falls back to BM25-ranked passages when there is none; literal or ranked force one. Narrow directories with glob, e.g. "*.pdf".Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"930m310n-geomelon-mcp": {
"command": "npx",
"args": [
"-y",
"geomelon-mcp"
],
"env": {
"GEOMELON_API_KEY": "YOUR_GEOMELON_API_KEY_HERE",
"PORT": "YOUR_PORT_HERE"
}
}
}
}
{
"mcpServers": {
"pdf-reader-mcp": {
"command": "npx",
"args": [
"-y",
"@sylphx/anymd"
]
}
}
}