Codebase Memory MCP vs Obsbot MCP

A side-by-side look at the Codebase Memory MCP and Obsbot MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Codebase Memory MCP logoCodebase Memory MCPKnowledge & Memory · Local subprocess (stdio)Code-intelligence engine that indexes a repo into a persistent knowledge graph — functions, classes, call chains, HTTP routes, cross-service links. 159 languages via tree-sitter + Hybrid LSP, sub-ms structural queries, 99% fewer tokens than grep. Single static binary, zero dependencies, 100% local. npx codebase-memory-mcp73GreatAuth: no auth requiredObsbot MCP logoObsbot MCPEmbedded System · Local subprocess (stdio)Control an OBSBOT Tiny 2 webcam over USB — pan/tilt/zoom the motorized gimbal in degrees, AI subject tracking, presets, focus/exposure/white-balance, snapshots and recording. Point it at a pixel, or zoom to fit a region of a snapshot it just took. 35 tools (34 on Linux), speaking UVC and the vendor protocol directly with no vendor SDK and no cloud; prebuilt native helpers for Windows, macOS and Linux. npx obsbot-mcp64GoodAuth: not declared

Verdict: choose Codebase Memory MCP for knowledge & memory work as a local process; choose Obsbot MCP for embedded system as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Codebase Memory MCP logoChoose 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.
Explore Codebase Memory MCP

Obsbot MCP logoChoose Obsbot MCP when

  • You need dedicated capabilities in the Embedded System domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like obsbot_devices, obsbot_wake, obsbot_sleep.
Explore Obsbot MCP

Feature & specification comparison

Rows where the two servers differ are marked.

SpecCodebase Memory MCP logoCodebase Memory MCPObsbot MCP logoObsbot MCP
CategoryKnowledge & MemoryEmbedded System
Quality signal73/100 · Great64/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNo auth requiredNot declared
PricingFreeNot declared
Required env varsNone listedNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars47,0042
Directory activity 8 views 1 installs 1 upvotes 2 views 0 installs 0 upvotes
Tools1780

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

Obsbot MCP tools 80

  • obsbot_devicesList attached OBSBOT-compatible cameras. Each entry is { serial?, locationId?, name, status, reason? }: serial is the value to pass as `camera` to any camera-addressing tool (present where obtainable — reading it requires briefly opening the camera); status is available (free to bind), bound (already opened by this process), or busy (could not be opened and identified, so it can't be targeted here — usually another process holds it, but it also covers a camera that opened yet would not answer). On a busy entry, `reason` carries the underlying error and distinguishes those cases.
  • obsbot_wakeWake the camera/gimbal (sends "run"). This MOVES the camera: waking un-stows the gimbal and brings it back to level (pitch ~0). Most control commands also wake the camera implicitly as a side effect.
  • obsbot_sleepSleep the camera/gimbal (sends "sleep"). This MOVES the camera: sleeping STOWS the gimbal, tilting it face-down to roughly pitch 84°, so obsbot_gimbal_position will read ~84 rather than the pose you left it in. obsbot_wake un-stows it.
  • obsbot_gimbal_moveMove the gimbal to an absolute yaw/pitch angle (degrees); positive yaw pans to the camera's left, positive pitch tilts down. Yaw is clamped to [-130,130], pitch to [-90,90]. Absolute positioning (1:1 degrees), verified on hardware.
  • obsbot_gimbal_recenterRecenter the gimbal — drives it back to yaw 0 / pitch 0 (level and facing forward). Returns as soon as the command is sent: the gimbal may still be moving, so poll obsbot_gimbal_position if you need to know it has arrived.
  • obsbot_zoom_uvcStandard UVC zoom: set an absolute zoom ratio, clamped to [1.0, 2.0]. Snaps to the requested target exactly (unlike obsbot_zoom_vendor, whose ratio scale differs and may not land exactly where asked). Waits for the zoom to actually arrive and returns { settled }: the ramp is not instant (a full 1.0->2.0 sweep takes about 2.4s), and obsbot_aim_at_pixel and obsbot_zoom_to_fit both refuse while it is in flight, so this returning early would just move the failure downstream. settled:false means the zoom had not arrived within the timeout — the command was still sent.
  • obsbot_ai_trackEnable or disable AI tracking and choose the mode. When enabled the camera follows the subject; disabling stops tracking. `mode` is either a human framing (normal | upper-body | close-up | headless | lower-body) or a standalone scene mode (group | whiteboard | desk | hand); scene modes imply enabled:true. After writing, the tool polls the status block until the mode settles and returns { verified, matched } — the aiMode the device actually landed on (matched:false means no subject was being tracked, so the mode could not take effect yet).
  • obsbot_ai_track_speedSet the AI tracking-speed preset (OBSBOT Center's Standard/Sport). speed: standard (slower follow) | sport (snappier follow).
  • obsbot_zoom_vendorVendor zoom path with adjustable speed: zoom to a ratio at a chosen speed. This tool's ratio scale differs from obsbot_zoom_uvc's and may not land exactly on the requested target. ratio is clamped to [1.0,2.0]; speed 0=device default, 1-10 slow→fast, 255=maximum.
  • obsbot_focus_faceEnable or disable face-priority autofocus.
  • obsbot_statusRead the camera's live status block. Returns { awake, hdr, faceAe, aiMode, trackSpeed, fovMode, zoomPercent, focusMode, focusPosition }: faceAe is whether auto-exposure is metering for a detected face; aiMode is the current AI framing (no-tracking|normal|upper-body|close-up|headless|lower-body|desk|whiteboard|hand|group|unknown); trackSpeed is standard|sport|unknown; fovMode is the field-of-view mode (wide|medium|narrow|custom|unknown), where custom means a continuous zoom overrode the discrete modes; zoomPercent is the zoom position, 0-100; focusMode is auto|manual|unknown. focusPosition is present ONLY in manual mode, on the same 0-100 scale obsbot_focus_manual takes: under autofocus this camera does not expose the motor, it echoes the last written value, so reporting it would look like a live focus distance while being stale. Focus is a standard UVC control rather than a field of the status block, so it costs an extra read; a device that cannot answer it reports focusMode unknown rather than failing the whole read. Under --debug the result also carries `raw`: the full 60-byte status block as hex (for reverse-engineering undecoded offsets).
  • obsbot_image_fovSet the field of view. fov: wide (86°) | medium (78°) | narrow (65°).
  • +68 more on the listing page

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 (Claude Desktop / Cursor)
{
  "mcpServers": {
    "deusdata-codebase-memory-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "codebase-memory-mcp"
      ]
    }
  }
}

Obsbot MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "lxman-obsbot-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "obsbot-mcp"
      ]
    }
  }
}

Frequently asked questions

Codebase Memory MCP is categorized under Knowledge & Memory and uses a local stdio subprocess. Obsbot MCP belongs to Embedded System and uses a local stdio subprocess. Pick Codebase Memory MCP for knowledge & memory work and Obsbot MCP for embedded system.

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. Obsbot MCP 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 lxman-obsbot-mcp 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,004 GitHub stars. Obsbot MCP has 64/100 (Good) with 2 views, 0 installs and 2 GitHub stars.