A Model Context Protocol (MCP) server that provides tools for analyzing code repositories, with a special focus on Nostr-related projects.
Clone this repository
Install dependencies:
npm install
npm run build
The MCP server handles file paths in the following ways:
Default access: By default, the server will access the current working directory (cwd) if no path is specified.
Configure specific directories: To specify what directories Claude can access, set the DEFAULT_REPO_PATH
environment variable in the Claude config.
Per-command overrides: Users can override the default path with the repoPath
parameter in their commands, like:
analyze-code --focus=structure --repoPath=/another/directory
Client permissions: Remember that Claude for Desktop will ask for permission before executing tools that access your filesystem.
You can analyze multiple repositories without restarting the server by specifying the repository path directly in your commands:
# Analyze structure of a specific repository
analyze-repo --focus=overview --repoType=generic --repoPath=/path/to/specific/repo
# Analyze code in a different repository
analyze-code --focus=structure --path=src/index.js --repoPath=/path/to/another/repo
# Search for patterns in yet another repository
search-code --query="addEventListener" --filePattern="*.js" --repoPath=/path/to/third/repo
All analysis tools (analyze-repo
, analyze-code
, search-code
, git-history
, analyze-ndk
, analyze-ndk-files
, and analyze-nostr-protocol
) accept a repoPath
parameter which overrides the default path.
To connect this MCP server to Claude Desktop:
# On macOS
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
# On Windows
# Edit %AppData%\Claude\claude_desktop_config.json
{
"mcpServers": {
"repo-analyzer": {
"command": "node",
"args": [
"/absolute/path/to/repo-analyzer-mcp/dist/index.js"
],
"transport": "stdio",
"env": {
"NODE_ENV": "production",
"DEFAULT_REPO_PATH": "/path/to/default/repository"
}
}
}
}
Replace /absolute/path/to/repo-analyzer-mcp
with the actual full path to where you installed this tool, and /path/to/default/repository
with the path to the repository you want to analyze by default.
If Claude Desktop fails to start or the MCP servers don't appear:
~/Library/Logs/Claude/mcp*.log
"DEBUG": "mcp:*"
to the env
section of your configurationAnalyzes code files with different focus options:
structure
: Examines the file structure, including line counts, functions, classes, etc.components
: Identifies React components, hooks usage, etc.dependencies
: Lists imports and dependencieschanges
: Shows recent git history and changes to the fileExample:
Analyze the code structure of src/index.ts
Searches the repository for specific patterns, with optional file pattern filtering.
Example:
Search the code for "addEventListener" in .js files
Retrieves git commit history for the repository or a specific file.
Example:
Show me the git history for README.md, limit to 5 commits
Analyzes Nostr Development Kit (NDK) repositories with focus on:
implementation
: Core implementation detailsmigrations
: Version changes and migration guidesall
: Both implementation and migrationsExample with explicit repository path:
Analyze NDK implementation at /path/to/ndk-repo
Explores the NDK file structure with focus on:
overview
: General overview of the repositorycomponents
: Component architectureapi
: API structure and designarchitecture
: Overall architecture and patternsall
: Comprehensive analysisExample with explicit repository path:
Analyze NDK files with focus on components at /path/to/ndk-repo
Analyzes Nostr protocol repositories with focus on:
events
: Event types and structures defined in NIPsimplementations
: Implementation details across different languagesExample with explicit repository path:
Analyze Nostr Protocol events at /path/to/nips-repo with focus on social context
Provides a general repository analysis with various focus options:
overview
: High-level repository informationcomponents
: Component structure and organizationapi
: API definitions and structurearchitecture
: Overall architectural patternsimplementation
: Implementation detailsall
: Comprehensive analysis of all aspectsExample:
Analyze the repo with focus on architecture
The server also provides access to:
file://{filePath}
: Read file contents from the repositorydir://{dirPath}
: List directory contents from the repositoryExample:
Show me the content of the package.json file
For the specialized analysis tools to work correctly, repositories should follow certain structures:
The analyzer looks for one of these structures:
package.json
that has the name @nostr-dev-kit/ndk
ndk
directory containing a package.json
with the name @nostr-dev-kit/ndk
The analyzer looks for one of these structures:
nips
directory containing Markdown files for NIPspackage.json
that references "nostr" in its name, description, or keywordsTo run in development mode:
npm run dev
MIT
Seamless access to top MCP servers powering the future of AI integration.