README.md•6.22 kB
# Code Context Provider MCP
### MCP server that provides code context and analysis for AI assistants. Extracts directory structure and code symbols using WebAssembly Tree-sitter parsers with Zero Native Dependencies.
<div align="center" style="text-align:center;font-family: monospace; display: flex; align-items: center; justify-content: center; width: 100%; gap: 10px">
<a href="https://nextjs-boilerplate-ashy-nine-64.vercel.app/demo-context-provider"><img
src="https://komarev.com/ghpvc/?username=AB498&label=DEMO&style=for-the-badge&color=CC0000" /></a>
<a href="https://discord.gg/ZeeqSBpjU2"><img
src="https://img.shields.io/discord/1095854826786668545?style=for-the-badge&color=0000CC" alt="Discord"></a>
<a href="https://img.shields.io/badge/License-MIT-yellow.svg"><img
src="https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge&color=00CC00" alt="License: MIT"></a>
<a href="https://www.npmjs.com/package/code-context-provider-mcp"><img
src="https://img.shields.io/npm/v/code-context-provider-mcp?style=for-the-badge" alt="PyPi"></a>
</div>
---
## Features
- Generate directory tree structure
- Analyze JavaScript/TypeScript and Python files
- Extract code symbols (functions, variables, classes, imports, exports)
- Compatible with the MCP protocol for seamless integration with AI assistants
## Quick Usage (MCP Setup)
### Installing via Smithery
To install Code Context Provider for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@AB498/code-context-provider-mcp):
```bash
npx -y @smithery/cli install @AB498/code-context-provider-mcp --client claude
```
### Windows
```json
{
"mcpServers": {
"code-context-provider-mcp": {
"command": "cmd.exe",
"args": [
"/c",
"npx",
"-y",
"code-context-provider-mcp@latest"
]
}
}
}
```
### MacOS/Linux
```json
{
"mcpServers": {
"code-context-provider-mcp": {
"command": "npx",
"args": [
"-y",
"code-context-provider-mcp@latest"
]
}
}
}
```
OR install globally with `npm`:
```bash
npm install -g code-context-provider-mcp
```
Then use it by running:
```bash
code-context-provider-mcp # if you're not using @latest, you may want to clear the cache for latest version using `Remove-Item -Path "$env:LOCALAPPDATA\npm-cache\_npx" -Recurse -Force` for windows and `rm -rf ~/.npm/_npx` for linux/macos
```
## Available Tools
### `get_code_context`
Analyzes a directory and returns its structure along with code symbols (optional).
Parameters:
- `absolutePath` (string, required): Absolute path to the directory to analyze
- `analyzeJs` (boolean, optional): Whether to analyze JavaScript/TypeScript and Python files (default: false)
- `includeSymbols` (boolean, optional): Whether to include code symbols in the response (default: false)
- `symbolType` (enum, optional): Type of symbols to include if includeSymbols is true (options: 'functions', 'variables', 'classes', 'imports', 'exports', 'all', default: 'all')
- `filePatterns` (array of strings, optional): File patterns to analyze (e.g. ['*.js', '*.py', 'config.*'])
- `maxDepth` (number, optional): Maximum directory depth to analyze (default: 5 levels)
Note: Anonymous functions are automatically filtered out of the results.
## Example Output Text On Tool Call
```
Directory structure for: C:\Users\Admin\Desktop\mcp\context-provider-mcp
Code Analysis Summary:
- Files analyzed: 3
- Total functions: 29
- Total variables: 162
- Total classes: 0
Note: Symbol analysis is supported for JavaScript/TypeScript (.js, .jsx, .ts, .tsx) and Python (.py) files only.
Code analysis limited to a maximum depth of 5 directory levels (default).
├── index.js (39 KB)
│ └── [Analyzed: 22 functions, 150 variables, 0 classes]
│ Functions:
│ - initializeTreeSitter [39:0]
│ - getLanguageFromExtension [107:0]
│ - getPosition [138:24]
```
## File Pattern Examples
You can use the `filePatterns` parameter to specify which files to analyze. This is useful for complex projects with multiple languages or specific files of interest.
Examples:
- `["*.js", "*.py"]` - Analyze all JavaScript and Python files
- `["config.*"]` - Analyze all configuration files regardless of extension
- `["package.json", "*.config.js"]` - Analyze package.json and any JavaScript config files
- `[".ts", ".tsx", ".py"]` - Analyze TypeScript and Python files (using extension format)
The file pattern matching supports:
- Simple glob patterns with wildcards (*)
- Direct file extensions (with or without the dot)
- Exact file names
## Handling Large Projects
For very large projects, you can use the `maxDepth` parameter to limit how deeply the tool will traverse directories:
- `maxDepth: 2` - Only analyze the root directory and one level of subdirectories
- `maxDepth: 3` - Analyze the root, and two levels of subdirectories
- `maxDepth: 0` - Only analyze files in the root directory
This is particularly useful when:
- Working with large monorepos
- Analyzing projects with many dependencies
- Focusing only on the main source code and not third-party libraries
## Supported Languages
Code symbol analysis is supported for:
- JavaScript (.js)
- JSX (.jsx)
- TypeScript (.ts)
- TSX (.tsx)
- Python (.py)
Using the `filePatterns` parameter allows you to include other file types in the directory structure, though symbolic analysis may be limited.
## Development
### [Development] Setting up the Development Environment
```bash
# Clone the repository
git clone https://github.com/your-username/code-context-provider-mcp.git
cd code-context-provider-mcp
# Install dependencies
npm install
# Set up WASM parsers
npm run setup
```
### [Development] Post-Installation
After installation, the package's `prepare` script automatically runs to download the WASM parsers. If for some reason the download fails, users can manually run the setup:
```bash
npx code-context-provider-mcp-setup
```
## License
MIT
## For more information or help
- [Email (abcd49800@gmail.com)](mailto:abcd49800@gmail.com)
- [Discord (CodePlayground)](https://discord.gg/ZeeqSBpjU2)