/ Directory / Playground / octocode-mcp
● Community bgauryy ⚡ Instant

octocode-mcp

by bgauryy · bgauryy/octocode-mcp

Semantic code research MCP — search across public and private repos using natural language, with LSP-powered go-to-definition and call hierarchy.

Octocode is an MCP server that gives your AI assistant senior-engineer-level code research skills. It combines GitHub and GitLab integration with local LSP intelligence (go-to-definition, find-references, call hierarchy) to search, understand, and generate context from any accessible codebase. Comes with 9 specialized skills for research, PR review, RFC generation, and more.

Why use it

Key features

Live Demo

What it looks like in practice

octocode.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "octocode": {
      "command": "npx",
      "args": [
        "-y",
        "octocode-mcp"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "octocode": {
      "command": "npx",
      "args": [
        "-y",
        "octocode-mcp"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "octocode": {
      "command": "npx",
      "args": [
        "-y",
        "octocode-mcp"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "octocode": {
      "command": "npx",
      "args": [
        "-y",
        "octocode-mcp"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "octocode",
      "command": "npx",
      "args": [
        "-y",
        "octocode-mcp"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "octocode": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "octocode-mcp"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add octocode -- npx -y octocode-mcp

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use octocode-mcp

How to find real implementation patterns across repos with Octocode

👤 Developers looking for how others solved a specific problem ⏱ ~20 min intermediate

When to use: You need to implement something (auth, caching, rate limiting) and want to see how real codebases do it, not just docs.

Prerequisites
  • Octocode MCP installed — npx octocode-cli (interactive wizard) or add octocode-mcp to your MCP config
  • GitHub authentication — Follow the authentication setup guide in the repo docs
Flow
  1. Search for implementations
    Search across popular TypeScript repos for real implementations of rate limiting middleware. Show me the top 3 most-starred examples.✓ Copied
    → Code snippets from real repos with file paths and context
  2. Drill into the best one
    For the best example, use go-to-definition to trace how the rate limiter is configured and where it's applied in the middleware chain.✓ Copied
    → Full call chain from entry point to implementation
  3. Adapt for your project
    Based on that pattern, write a rate limiter for my Express app that uses Redis. Follow the same structure.✓ Copied
    → Production-ready code following verified patterns

Outcome: A well-researched implementation based on real-world patterns, not hallucinated API calls.

Pitfalls
  • Searching too broadly returns noise — Scope to specific orgs or repos, and filter by language
Combine with: github · filesystem

Review a PR with full codebase context using Octocode

👤 Code reviewers who need to understand impact beyond the diff ⏱ ~15 min intermediate

When to use: A PR touches a function you're not familiar with, and you need to understand all callers before approving.

Flow
  1. Analyze the changed function
    Use Octocode's find-references to show me every caller of the function modified in PR #42. Are any of them in hot paths?✓ Copied
    → Complete list of callers with context on criticality
  2. Check for breaking changes
    Does this signature change break any of those callers? Check the types.✓ Copied
    → Specific yes/no per caller with type analysis
  3. Generate review comments
    Draft 3 review comments: one about the breaking risk, one about test coverage, one about the naming choice.✓ Copied
    → Specific, line-level comments ready to post

Outcome: A thorough PR review grounded in actual usage data, not guesswork.

Pitfalls
  • LSP not initialized for the language — Ensure the relevant language server is installed locally (e.g., tsserver for TypeScript)
Combine with: github

Onboard to an unfamiliar codebase in 30 minutes

👤 New team members or contractors ramping on a project ⏱ ~30 min beginner

When to use: Day one on a new repo — you need the architecture in your head, fast.

Flow
  1. Get the high-level map
    Use Octocode to analyze this repo's structure. What are the main modules, entry points, and data flow?✓ Copied
    → Architecture overview with module boundaries
  2. Trace a key flow
    Trace the request flow from the API handler for POST /users to the database layer. Show me every function in the chain.✓ Copied
    → End-to-end call chain with file locations
  3. Identify conventions
    What patterns does this codebase use? Error handling style, logging, dependency injection, test structure.✓ Copied
    → Conventions list with code examples

Outcome: A mental model of the codebase architecture, key flows, and conventions — enough to start contributing.

Pitfalls
  • Repo too large for a single analysis pass — Start with one module (e.g., 'just the API layer') and expand
Combine with: filesystem

Combinations

Pair with other MCPs for X10 leverage

octocode + github

Octocode finds the pattern across repos, GitHub MCP creates the PR implementing it

Use Octocode to find how other repos handle JWT refresh tokens, then use GitHub MCP to create a PR implementing the best pattern in our repo.✓ Copied
octocode + filesystem

Octocode analyzes remote repos for patterns, filesystem MCP applies them to your local codebase

Research how nf-core handles CI configuration via Octocode, then write a similar .github/workflows/ci.yml for my project.✓ Copied
octocode + sentry

Sentry identifies the error, Octocode traces all callers to assess blast radius

Sentry shows an error in parseConfig(). Use Octocode to find all callers of parseConfig and assess which user flows are affected.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
search_code query: str, org?: str, repo?: str, language?: str Find code patterns across repos using natural language 1 GitHub API call
go_to_definition file: str, line: int, symbol: str Jump to where a function/class/type is defined Local LSP call
find_references file: str, line: int, symbol: str Find all callers of a function or users of a type Local LSP call
call_hierarchy file: str, line: int, symbol: str Understand the full call chain around a function Local LSP call
browse_directory path: str Explore repo structure Local file read
search_local query: str, path?: str Grep-like search in a local codebase Local file scan

Cost & Limits

What this costs to run

API quota
Inherits GitHub API limits: 5000 req/h for PAT, 30/min for code search. LSP calls are local and free.
Tokens per call
200-2000 tokens per tool response; large call hierarchies can hit 5k
Monetary
Free and open-source (MIT). You pay for your GitHub API usage and Claude tokens.
Tip
Use local tools (browse_directory, search_local) when possible — they're free and fast. Save GitHub API calls for cross-repo searches.

Security

Permissions, secrets, blast radius

Minimum scopes: repo:read (GitHub PAT)
Credential storage: GitHub PAT in environment variable. Configured during octocode-cli wizard.
Data egress: GitHub/GitLab API for remote searches. LSP and local tools stay on your machine.
Never grant: repo:write admin:org

Troubleshooting

Common errors and fixes

GitHub authentication failed

Re-run npx octocode-cli to reconfigure auth, or manually set your GitHub PAT in the environment

Verify: curl -H 'Authorization: Bearer $GITHUB_TOKEN' https://api.github.com/user
LSP features (go-to-definition) not working

Ensure the relevant language server is installed: tsserver for TypeScript, pyright/pylsp for Python, gopls for Go

Verify: Check that the language server binary is on your PATH
Search returns no results for private repos

Your GitHub PAT needs repo:read scope and must include the specific repo in its access list (fine-grained PAT)

npx octocode-mcp hangs on startup

Check Node.js version (18+ required). Clear npx cache: npx clear-npx-cache

Verify: node --version

Alternatives

octocode-mcp vs others

AlternativeWhen to use it insteadTradeoff
GitHub MCP (official)You only need basic code search and PR/issue management, not LSP intelligenceNo go-to-definition, no call hierarchy, no local codebase tools
SourcegraphYou need enterprise-grade code intelligence with a web UINot MCP-native; heavier setup; paid for private repos

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills