Skip to main content
Glama
MyunghoBae

Codebase MCP Server

by MyunghoBae
README.md
<p align="center">
  <h1 align="center">Codebase MCP Server</h1>
  <p align="center">Model Context Protocol server for secure and efficient Codebase analysis</p>
</p>

<p align="center">
  <a href="https://github.com/yourusername/codebase-mcp-server/blob/main/LICENSE">
    <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License">
  </a>
  <a href="https://www.npmjs.com/package/codebase-mcp-server">
    <img src="https://img.shields.io/npm/v/codebase-mcp-server" alt="npm version">
  </a>
</p>

<p align="center">
  <a href="#-key-features">Key Features</a> •
  <a href="#-supported-languages">Supported Languages</a> •
  <a href="#%EF%B8%8F-tools">Tools</a> •
  <a href="#-quickstart">QuickStart</a> •
  <a href="#-build">Build</a> •
  <a href="#-contributing">Contributing</a>

</p>

## 🌟 Key Features

- **Secure Access**: Restricts file operations to predefined root directory.
- **Efficient File Management**: Provides tools for reading and searching files.
- **Detailed Metadata**: Retrieves comprehensive file metadata including size, creation time, last modified time, permissions, and type.
- **Dependency Analysis**: Traverses and analyzes dependency trees within projects.

## 📋 Supported Languages

- **JavaScript/TypeScript**
- **CSS / CSS Preprocessors**

## 🛠️ Tools

- `get-project-basics`: Retrieves essential project information including package.json details, directory structure.
- `search-config-files`: Searches for configuration files within the root directory and returns their paths.
- `get-dependency-tree`: Traverses the dependency tree based on the given file path and root directory, and returns the traversal results.
- `list-directory`: Lists the contents of a specified directory, distinguishing between files and directories.
- `read-file-with-metadata`: Reads the content of a specified file and retrieves its metadata.

## 🚀 QuickStart

### Prerequisites

- Node.js v18 or later
- Codebase to communicate with LLM

### Installation

First, install the Codebase MCP server with your client. A typical configuration looks like this:

```json
{
  "mcpServers": {
    "Codebase": {
      "command": "npx",
      "args": ["codebase-mcp-server@latest", "/path/to/your/codebase"]
    }
  }
}
```

Or, you can install the Codebase MCP server with Docker.

After cloning this repository, build the Docker image:

```bash
docker build -t mcp/codebase -f .
```

And then add the following to your MCP servers file:

```json
{
  "mcpServers": {
    "Codebase": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--mount",
        "type=bind,src=/path/to/your/codebase/dir,dst=/projects/path/to/your/codebase/dir,ro",
        "--mount",
        "type=bind,src=/path/to/some/file.txt,dst=/projects/path/to/some/file.txt",
        "mcp/codebase",
        "/projects"
      ]
    }
  }
}
```

<details><summary><b>Install in VS Code</b></summary>
You can install the Codebase MCP server using the VS Code CLI:

```bash
# For VS Code
code --add-mcp '{"name":"Codebase","command":"npx","args":["codebase-mcp-server@latest"]}'
```

After installation, the Codebase MCP server will be available for use with your GitHub Copilot agent in VS Code.

</details>

<details><summary><b>Install in Cursor</b></summary>
Go to Cursor Settings -> MCP -> Add new MCP Server. Use following configuration:

```json
{
  "mcpServers": {
    "Codebase": {
      "command": "npx",
      "args": ["codebase-mcp-server@latest"]
    }
  }
}
```

</details>

<details><summary><b>Install in Windsurf</b></summary>

Follow Windsuff MCP documentation. Use following configuration:

```json
{
  "mcpServers": {
    "Codebase": {
      "command": "npx",
      "args": ["codebase-mcp-server@latest"]
    }
  }
}
```

</details>

<details><summary><b>Install in Claude Desktop</b></summary>

Follow the MCP install guide, use following configuration:

```json
{
  "mcpServers": {
    "Codebase": {
      "command": "npx",
      "args": ["codebase-mcp-server@latest"]
    }
  }
}
```

</details>

## 🔧 Build

### Local Development Build

```bash
# Install dependencies
npm ci

# Build TypeScript
npm run build
```

### Docker Build

```bash
# Build Docker image
docker build -t mcp/codebase -f .

# Or with specific tag
docker build -t mcp/codebase:latest -f .
```

## 🤝 Contributing

Contributions are welcome! Please read our Contributing Guide for details on our Code of conduct and the process for submitting pull requests.