Skip to main content
AllMCPs
BrowseBestCategoriesStackCompareToolsGuidesBlog
Log in Submit MCP

Stay in the loop

Get new MCP servers and top picks in your inbox.

AllMCPs

The open directory for discovering and installing Model Context Protocol servers.

AllMCPs on GitHub (opens in a new tab)
Launched onTiny Startupstinystartups.com
Explore
  • Browse servers
  • Best MCP servers
  • Categories
  • MCP clients
  • Agent prompts
  • Stack Builder
  • Compare servers
  • Random discovery New
  • Submit a server
  • Pricing & Boost Boost
Learn
  • Guides hub
  • What is MCP?
  • Install guide
  • Build an MCP server
  • Deploy an MCP server
  • Security guide
  • Troubleshooting
  • MCP for SEO & AEO
  • Protocol versioning
  • Transports: stdio vs HTTP
  • State of MCP (stats)
  • Blog & updates
Tools
  • All developer tools
  • Config generator
  • Config validator
  • Config auditor
  • MCP playground
  • Token calculator
  • OpenAPI → MCP
  • Badge generator
For agents
  • REST API docs
  • Trust & traffic Live
  • Remote MCP server SSE ↗ (opens in a new tab)
  • llms.txt ↗ (opens in a new tab)
  • Catalog JSON ↗ (opens in a new tab)
Company
  • About
  • Advertise Sponsor
  • Contact
  • GitHub ↗ (opens in a new tab)
  • Terms
  • Privacy
AllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistLaunched on Tiny StartupsFeatured on ShowMeBestAIFeatured on ShowMeBestAIFind us on LaunchZoneFind us on LaunchZoneAllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistLaunched on Tiny StartupsFeatured on ShowMeBestAIFeatured on ShowMeBestAIFind us on LaunchZoneFind us on LaunchZone
© 2026 Jackalope Digital LLC. All rights reserved.
  1. Home
  2. Browse
  3. Excel Vision MCP
  4. vs Keymem
Side-by-Side Model Context Protocol Comparison

Excel Vision MCP vs Keymem

In-depth architectural comparison of the Excel Vision MCP and Keymem MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.

At a Glance & Executive Verdict

Excel Vision MCP
Workplace & Productivity · Local stdio
Quality: 61/100 (Good) | Auth: No auth required
Keymem
Workplace & Productivity · Local stdio
Quality: 64/100 (Good) | Auth: No auth required
Verdict Summary: Choose Excel Vision MCP if you need specialized Workplace & Productivity tools running via a local process. Choose Keymem if your workspace requires Workplace & Productivity integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.

Which MCP Server Should You Choose?

Excel Vision MCP logo

Choose Excel Vision MCP when:

  • You need dedicated capabilities in the Workplace & Productivity domain.
  • You prefer local stdio subprocess transport architecture.
  • Your security boundary fits: No auth required (Free / Open Source).
  • Primary tools included: list_sheets, read_excel_data, extract_images.
Explore Excel Vision MCP Details
Keymem logo

Choose Keymem when:

  • You need dedicated capabilities in the Workplace & Productivity domain.
  • You prefer local stdio subprocess transport architecture.
  • Your security boundary fits: No auth required (Free / Open Source).
  • Primary tools included: recall, browse_keys, read_key.
Explore Keymem Details

Feature & Specification Comparison

Specification
Excel Vision MCP logo
Excel Vision MCP
Workplace & Productivity
Keymem logo
Keymem
donggyun112
Workplace & Productivity
SummaryExcel reading MCP with embedded image extraction — AI agents see text and images in xlsx filesAssociative key-graph memory for LLM agents — recall by association, not vector similarity.
Category & ScopeWorkplace & Productivity

Tools & Capabilities Breakdown

Excel Vision MCP Tools (13)

list_sheets
List all sheets in an Excel workbook with their dimensions and metadata. Returns sheet names, row/column counts, data ranges, merged cell counts, and total embedded image count. Use this to understand the structure of an Excel file before reading its contents. @param file_path: Absolute path to the .xlsx file. @return: Formatted text with workbook structure overview.
read_excel_data
Read cell data from an Excel sheet with pagination for large files. Returns cell values organized by row with coordinate labels and formatting markers ([B]=bold, [S]=strikethrough, [HL:color]=highlight, [C:color]=font color) that reveal the author's emphasis and status marks. Hidden rows/columns are skipped by default — the author hid them for a reason — except hidden cells that visible formulas depend on, which are kept and marked [HIDDEN-REF]. @param file_path: Absolute path to the .xlsx file. @param sheet_name: Sheet to read. None = first/active sheet. @param start_row: Starting row number (1-indexed). @param max_rows: Maximum rows to return (default 200). @param include_hidden: Set true to also read hidden rows/columns. @return: Formatted text table with cell values and formatting markers.
extract_images
Extract all embedded images from an Excel file. Uses dual extraction strategy: cell-position mapping (primary) and ZIP archive scanning (fallback) to ensure no images are missed. Returns images as base64-encoded ImageContent that AI can visually analyze. @param file_path: Absolute path to the .xlsx file. @param sheet_name: Specific sheet, or None for all sheets. @param max_width: Max width in pixels for image optimization (default 1024). @param max_height: Max height in pixels for image optimization (default 1024). @return: Mixed list of TextContent (metadata) and ImageContent (images).

Ready-to-Paste Client Configurations

Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).

Excel Vision MCP Configuration
mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "excel-vision-mcp": {
      "command": "uvx",
      "args": [
        "excel-vision-mcp"
      ]
    }
  }
}
Keymem Configuration
mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "donggyun112-keymem": {
      "command": "npx",
      "args": [
        "-y",
        "keymem"
      ]
    }
  }
}

Frequently Asked Questions

Excel Vision MCP is categorized under Workplace & Productivity and uses a local stdio subprocess. In contrast, Keymem belongs to Workplace & Productivity using local stdio subprocess. Select Excel Vision MCP when you need capabilities focused on workplace & productivity and Keymem when you require tools for workplace & productivity.

More alternatives to Excel Vision MCPMore alternatives to KeymemWorkplace & Productivity category hubCanonical compare URL

Related MCP Server Comparisons

Popular comparisons with Excel Vision MCP

  • Excel MCP Server logoExcel Vision MCP vs Excel MCP Server
  • Adeu logoExcel Vision MCP vs Adeu
  • Ve Gws logoExcel Vision MCP vs Ve Gws
  • MCP Server Atlassian Jira logoExcel Vision MCP vs MCP Server Atlassian Jira

Popular comparisons with Keymem

Workplace & Productivity
Quality signal61/100 (Good)64/100 (Good)
Transport ProtocolLocal Subprocess (stdio)Local Subprocess (stdio)
Auth RequirementNo auth requiredNo auth required
Pricing ModelFree / Open SourceFree / Open Source
Required Env VarsNone requiredNone required
Compatible Clients
Claude DesktopCursorWindsurfClineVS Code
Claude DesktopCursorWindsurfClineVS Code
Install path signaluvx · highnpx · high
Engagement & Health 5 views 0 copies 0 upvotes 20 stars 2 views 0 copies 0 upvotes 3 stars
Verified / OfficialCommunity ListingCommunity Listing
Open full listingView Excel Vision MCP ListingView Keymem Listing
read_full_content
Read the FULL content of an Excel file including all text data AND embedded images. This is the primary tool for comprehensive document analysis. Returns all sheet data as structured text followed by all extracted images with their cell positions. Ideal for analyzing documents where both text and diagrams/screenshots are essential, such as requirement definitions, reports, or design specs. For very large files, data is paginated per sheet. Image extraction uses dual strategy (cell-mapping + archive) for maximum coverage. Cell text carries formatting markers ([B]=bold, [S]=strikethrough, [HL:color]= highlight) so emphasis and status marks survive into the analysis. Hidden rows/columns are skipped by default, except hidden cells that visible formulas depend on. @param file_path: Absolute path to the .xlsx file. @param max_rows_per_sheet: Max rows to read per sheet (default 500). @param max_image_width: Max width for image optimization (default 1024). @param max_image_height: Max height for image optimization (default 1024). @param include_hidden: Set true to also read hidden rows/columns. @return: Mixed list of TextContent and ImageContent covering entire workbook.
get_workbook_overview
Get a quick summary overview of an Excel workbook. Returns file metadata, sheet list with dimensions, image count, and merged cell information. Use this for a fast assessment before deeper analysis. @param file_path: Absolute path to the .xlsx file. @return: Formatted text summary.
search_excel
Search for text content across all cells in an Excel workbook. Performs case-insensitive substring search and returns matching cells with their coordinates and values. Hidden rows/columns are excluded by default. Limited to 100 results. @param file_path: Absolute path to the .xlsx file. @param query: Text to search for. @param sheet_name: Limit to specific sheet, or None for all sheets. @param include_hidden: Set true to also search hidden rows/columns. @return: Formatted text with search results.
create_excel_file
Create a new empty .xlsx workbook. @param file_path: Absolute destination path; parent directory must exist. @param sheet_names: Sheet names to create in order. None = single "Sheet1". @param overwrite: Set true to replace an existing file. Default false. @return: Confirmation with the created sheet list.
add_excel_sheet
Add a new empty sheet to an existing workbook. @param file_path: Absolute path to the .xlsx/.xlsm file. @param sheet_name: Name for the new sheet; must not already exist. @param position: 0-based index to insert at. None = append at the end. @return: Confirmation with the updated sheet list.
update_excel_cells
Set individual cells by coordinate, e.g. {"A1": "Title", "B2": 42}. String values starting with "=" are written as formulas (e.g. "=SUM(A1:A5)"). Note: newly written formulas have no calculated value until the file is opened in Excel. For cells inside a merged range, write to the range's top-left anchor cell. The save is atomic — a failed write never corrupts the original file. @param file_path: Absolute path to the .xlsx/.xlsm file. @param updates: Mapping of cell coordinate to value. @param sheet_name: Target sheet. None = first sheet. @return: Confirmation with the number of cells written.
write_excel_rows
Write a rectangular block of rows starting at start_cell. Efficient for tabular data: pass a list of rows, each a list of values. Existing cells in the target range are overwritten; cells outside it are untouched. The save is atomic. @param file_path: Absolute path to the .xlsx/.xlsm file. @param rows: List of rows, each a list of cell values. @param sheet_name: Target sheet. None = first sheet. @param start_cell: Top-left coordinate of the block (default "A1"). @return: Confirmation with the written range.
insert_excel_image
Insert an image from a local file into a workbook, anchored at a cell. @param file_path: Absolute path to the .xlsx/.xlsm file. @param image_path: Absolute path to the image file (PNG/JPEG/GIF/BMP). @param cell: Anchor cell coordinate (e.g. "B2"). @param sheet_name: Target sheet. None = first sheet. @param width: Display width in pixels. None = natural size. @param height: Display height in pixels. None = natural size. @return: Confirmation with anchor position and display size.
format_excel_cells
Apply formatting to a cell range: font, colors, borders, alignment, number format. Only the attributes you pass are changed; existing styling is preserved. Example — style a header row: cell_range="A1:D1", bold=true, font_color="FFFFFF", fill_color="4472C4", horizontal_align="center", border_style="thin". @param file_path: Absolute path to the .xlsx/.xlsm file. @param cell_range: Range like "A1:C10" or a single cell like "B2". @param sheet_name: Target sheet. None = first sheet. @param font_name: Font family (e.g. "Calibri"). @param font_size: Font size in points. @param bold: Bold on/off. @param italic: Italic on/off. @param font_color: Text color, RRGGBB hex (e.g. "FFFFFF"). @param fill_color: Background color, RRGGBB hex (e.g. "4472C4"). @param border_style: thin, medium, thick, double, dashed, or dotted. @param border_edges: "all" = every cell; "outline" = outer edge of range only. @param horizontal_align: left, center, right, or justify. @param vertical_align: top, center, or bottom. @param wrap_text: Enable/disable text wrapping. @param number_format: Excel format code (e.g. "#,##0.00", "dd/mm/yyyy", "0%"). @return: Confirmation with the number of cells formatted.
+1 more tools listed on main page

Keymem Tools (12)

recall
Search long-term memory for what is already known about the user, project, or topic — call this before your first reply and whenever the topic shifts. Always pass the active namespace when known. Returns matching key clusters only (not memory content): canonical concept, aliases, key type, match score, linked-memory count, hub status, and specificity. For a core lookup, complete read_key(key_id, original_query, namespace) then read_memory(memory_id, via_key_id, namespace): only the full read grows depth/access, reinforces the traversed edge, and learns aliases. Use short focused noun queries and decompose multi-fact questions into several recall calls. inject:true is only an unconfirmed passive preview and must not replace that traversal; injected memories are not reinforced. inject_top_k defaults to 1; inject_max_chars defaults to 2000 and marks truncated previews. An empty result returns {status:'no_match', nearest_keys} — the closest stored concepts below the gate; retry with one of those concepts when relevant.
browse_keys
Browse the vocabulary of one namespace when recall has no hit or you need an entry point. Returns active key clusters with hubs first, then by linked-memory count. This is index metadata only; continue with read_key(key_id, query, namespace) and read_memory(memory_id, via_key_id, namespace).
read_key
List the memories stored under one key (concept), ranked. Returns the canonical key, its aliases, and hub metadata plus ranked memory IDs and metadata — never memory content. Always pass the original focused query and active namespace when known: handles are then ranked by content relevance, which is essential for hubs. Call read_memory(memory_id, via_key_id=key_id, namespace) on the selected handle to confirm the fact and reinforce the path. Use limit/offset to page without flooding context.
read_memory
Read the full content of one stored memory (selected via read_key). Returns the memory and all connected key clusters so exploration can continue Key → Memory → Key. Pass via_key_id from the selected key: only that traversed edge is Hebbian-reinforced, and depth/access count increase only when this full read occurs.
remember
MANDATORY END-OF-TURN GATE: before replying, save every durable fact newly revealed this turn (names, preferences, decisions, corrections, project facts, goals). A durable fact left unsaved is a bug; save silently in the same turn. Save nothing only after consciously confirming that nothing durable appeared. Before writing, recall() the topic in the same namespace and reuse returned canonical concepts or aliases. Use 3-6 diverse ATOMIC concept keys of 1-2 words each, never memory-specific phrases (use 'Nexora' and 'portfolio', not 'Nexora portfolio'); 3+-word keys are flagged in hints.phrase_keys and are measurably 91% unreachable singletons. CROSS-LINGUAL: register both language forms together (for example '포트폴리오' and 'portfolio'). Shared broad keys become navigable hubs. namespace groups memories by project/context; ttl_seconds sets expiry; related_to adds explicit memory links; source attaches provenance and is auto-stamped with the server session, a timestamp, and — when a host agent (Claude Code, Codex) transcript is active — host_session/host_agent/host_turn so the memory can be traced back to its original conversation via get_conversation. The response may include hints.near_keys (existing concepts your keys nearly duplicate — prefer reusing those concepts) and hints.language_note (add the missing-language variants).
correct
Update outdated information. Use when user corrects you or info changes (e.g. moved cities, changed job). Old version is preserved but weakened — never lost. Omit keys to keep the same search terms. related_to links the updated memory to other memory IDs.
related
Find other memories associated with a memory you already have (by ID). Returns neighboring memories connected by shared keys or explicit links. For normal agent-driven navigation prefer read_memory(), inspect its returned keys, then call read_key().
forget
Permanently delete a memory. Only use for completely wrong information. For outdated info, use correct() instead — it preserves history.
list_memories
List all stored memories. namespace filters by project/context. Expired memories are excluded. Prefer recall() for normal retrieval.
remember_batch
MANDATORY END-OF-TURN GATE: when a turn reveals multiple durable facts, save them silently before replying. A durable fact left unsaved is a bug. Recall each topic first, reuse canonical concept-level keys (ATOMIC, 1-2 words each — never phrases), and register cross-lingual forms together. Each item: {content, keys, key_types?, namespace?, ttl_seconds?, related_to?}. Returns saved IDs and is more efficient than multiple remember() calls.
cleanup_expired
Delete all memories past their ttl. Returns count of deleted memories. Call periodically to keep memory clean.
memory_stats
Get counts of keys, memories, and links in the system.
MCP Server logo
Keymem vs MCP Server
  • Adeu logoKeymem vs Adeu
  • Hackmd MCP logoKeymem vs Hackmd MCP
  • Delega MCP logoKeymem vs Delega MCP