Codebase Memory MCP vs Python Exec Sandbox
A side-by-side look at the Codebase Memory MCP and Python Exec Sandbox MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Codebase Memory MCP for knowledge & memory work as a local process; choose Python Exec Sandbox for code execution as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose Codebase Memory MCP when
- You need dedicated capabilities in the Knowledge & Memory domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: No auth required.
- You want tools like
index_repository, search_graph, query_graph.
Choose Python Exec Sandbox when
- You need dedicated capabilities in the Code Execution domain.
- You prefer a local stdio subprocess transport.
- You want tools like
execute_python, check_environment, validate_script.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Knowledge & Memory | Code Execution |
| Quality signal | 73/100 · Great | 52/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | No auth required | Not declared |
| Pricing | Free | Not declared |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 47,236 | 1 |
| Directory activity | 8 views 1 installs 1 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 17 | 3 |
| Full listing | View Codebase Memory MCP | View Python Exec Sandbox |
Tools & capabilities
Codebase Memory MCP tools 17
index_repositoryIndex a repository. full/moderate add semantics; fast omits them; cross-repo-intelligence links services. Reports coverage gaps.search_graphFind symbols via BM25 query, regex name/qn filters, or semantic_query. Rows keep qn/file/lines and in/out over CALLS/USAGE/CALL_REFERENCE/INHERITS/IMPLEMENTS.query_graphRead-only Cypher for multi-hop, aggregation, complexity, or cross-service analysis. Default: 200 visible rows with exact/lower-bound totals and truncation; continue safely with next_cursor. graph=missed is a file tree of flagged coverage gaps; absence is not proof of completeness. Use get_graph_schema(diagnostics=full) for properties.trace_pathTrace callers/callees, data flow, or cross-service paths. Defaults exclude tests and resolver evidence. Rows keep qn/hop with explicit totals, relations, and continuations.get_code_snippetRead a search_graph symbol. auto bounds source and outlines large containers; full restores up to 500 lines. Source/outline pages continue; coverage_note marks gaps.get_file_outlineDeclaration outline of one exact repository-relative file: optional exact label filter, source order, exact total/offset/limit paging; file/folder/container nodes excluded.get_graph_schemaGet node-label and edge-type counts. diagnostics=full also lists queryable properties.compare_graphsCompare two indexed snapshots: deterministic target-only additions and base-only removals of stable node/edge identities; each set capped by limit and a 512 KiB budget with exact totals and truncation reasons.get_architectureCompact counts, languages, packages, entry points. Request structure, dependencies, routes, hotspots, boundaries, layers, clusters, cycles, or file_tree; path scopes a directory.search_codeGraph-ranked text search: compact symbols, full bounded source, or file paths.list_projectsList projects with stable paging. Identity is lean; stats adds graph sizes.delete_projectDelete a project from the index- +5 more on the listing page
Python Exec Sandbox tools 3
execute_pythonExecute a Python script with automatic dependency management. The script can include PEP 723 inline metadata (# /// script blocks) for declaring dependencies. Additional dependencies can also be passed via the dependencies parameter and will be merged. Args: script: Python source code to execute. May include PEP 723 metadata. dependencies: Extra PEP 508 dependency specifiers to make available. timeout_seconds: Maximum execution time (1-300, default 30). Returns: Formatted output with stdout, stderr, exit code, and duration. Example - simple script: execute_python(script="print('hello')") Example - with dependencies parameter: execute_python( script="import requests; print(requests.get('https://example.com').status_code)", dependencies=["requests>=2.32"] ) Example - with inline dependency metadata (preferred for multiple deps): execute_python(script=''' # /// script # dependencies = ["pandas>=2.2", "numpy>=1.26"] # /// import pandas as pd import numpy as np print(pd.DataFrame({"a": np.arange(5)}).describe()) ''') Always pin dependency versions (e.g. "pandas>=2.2" instead of "pandas") for reproducible results. The inline metadata block (# /// script ... # ///) is the recommended way to declare dependencies directly in the script (see PEP 723: https://peps.python.org/pep-0723/). The dependencies parameter is a simpler alternative when you just need to add a few packages. Both accept standard pip-style version specifiers like "requests>=2.28" or "pandas" (see PEP 508: https://peps.python.org/pep-0508/).check_environmentCheck the execution environment and report status. Returns information about Python version, uv version, platform, sandbox configuration, and cache status.validate_scriptValidate a Python script's PEP 723 metadata and dependencies without executing it. Checks metadata syntax, dependency format, and requires-python compatibility. Args: script: Python source code to validate. May include inline dependency metadata (# /// script blocks, see https://peps.python.org/pep-0723/). dependencies: Extra dependency specifiers to validate, using standard pip-style format like "requests>=2.28" (see https://peps.python.org/pep-0508/). Returns: Validation result with metadata details or error information.
Ready-to-paste client configs
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.
Codebase Memory MCP
{
"mcpServers": {
"deusdata-codebase-memory-mcp": {
"command": "npx",
"args": [
"-y",
"codebase-memory-mcp"
]
}
}
}
Python Exec Sandbox
{
"mcpServers": {
"python-exec-sandbox": {
"command": "uvx",
"args": [
"mcp-python-exec-sandbox"
]
}
}
}
Frequently asked questions
Codebase Memory MCP is categorized under Knowledge & Memory and uses a local stdio subprocess. Python Exec Sandbox belongs to Code Execution and uses a local stdio subprocess. Pick Codebase Memory MCP for knowledge & memory work and Python Exec Sandbox for code execution.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
Codebase Memory MCP is listed as free. Auth: no auth required. Python Exec Sandbox has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add deusdata-codebase-memory-mcp and python-exec-sandbox as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, Codebase Memory MCP has a quality signal of 73/100 (Great) with 8 views, 1 installs and 47,236 GitHub stars. Python Exec Sandbox has 52/100 (Good) with 2 views, 0 installs and 1 GitHub stars.