FDEP MCP Server
About
A static code analysis server for enterprise-scale Haskell codebases, providing over 40 comprehensive analysis tools.
Details
- Author
- maverox
- Categories
- Developer Tools
Jump to
Setup
Install FDEP MCP Server in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/maverox/fdep-mcp-server
Follow the installation instructions in the repository README, then restart your MCP client.
A Static Code Analysis Model Context Protocol (MCP) serverdelivering 40+ comprehensive analysis tools for enterprise-scale Haskell codebases. Seamlessly integrates with MCP-compatible AI tools and clients to provide real-time code intelligence and architectural insights.
πMCP Protocol Compliant| ποΈ40+ Analysis Tools| β‘Real-time Queries
- Module Analysis: 7 tools for module structure and dependencies
- Function Analysis: 8 tools for call graphs and complexity metrics
- Type System: 6 tools for type relationships and usage patterns
- Class Analysis: 3 tools for typeclass and instance analysis
- Import Analysis: 4 tools for dependency visualization
- Advanced Queries: 4 tools for complex JSON-based code queries
- Pattern Analysis: 5 tools for code pattern detection
- Source Location: 3 tools for location-based analysis
- Enhanced Analysis: 3 tools for advanced structural analysis
- Python 3.13+
- UV package manager
- PostgreSQL database (must be running)
- FDEP output from Spider plugin (for comprehensive analysis)
Before installation, ensure PostgreSQL is running and create the required database:
# Start PostgreSQL (if not already running) # On macOS with Homebrew: brew services start postgresql # On Ubuntu/Debian: sudo systemctl start postgresql # Create the database createdb code_as_data # this should match with you $DB_NAME value in .env file (DEFAULT: code_as_data)
# Clone the repository git clone https://github.com/juspay/fdep-mcp-server.git cd fdep_mcp # Install globally with UV (recommended) uv tool install . # OR install globally with pipx # pipx install . # OR system-wide installation # pip install .vi
Important: Complete this step before using the MCP server with any client.
- Initialize the PostgreSQL database schema
- Import and process your FDEP data (if FDEP_PATH is configured)
- Set up all necessary indexes and relationships
Note: The first run takes time as it processes large FDEP datasets.
cp .env.example .env # Edit .env with your database settings and FDEP_PATH
After installation, configure your preferred MCP client to connect to the FDEP server:
{ "mcpServers": { "fdepAnalyzer": { "command": "fdep-mcp-server", "args": [], "env": { "FDEP_PATH": "/path/to/your/fdep/output" } } } }
Note: The first time running the server takes time as it imports and processes the FDEP data.
Add to your Cursor settings (Cmd/Ctrl + ,β Extensions β MCP):
{ "mcp.servers": { "fdepAnalyzer": { "command": "fdep-mcp-server", "args": [], "env": { "FDEP_PATH": "/path/to/your/fdep/output", "LOG_LEVEL": "INFO" } } } }
Note: The first time running the server takes time as it imports and processes the FDEP data.
Install the MCP extension and add tosettings.json:
{ "mcp.servers": [ { "name": "fdepAnalyzer", "command": "fdep-mcp-server", "args": [], "env": { "FDEP_PATH": "/path/to/your/fdep/output" } } ] }
Note: The first time running the server takes time as it imports and processes the FDEP data.
{ "mcpServers": { "fdepAnalyzer": { "command": "fdep-mcp-server", "args": [], "env": { "FDEP_PATH": "/path/to/your/fdep/output" } } } }
Note: The first time running the server takes time as it imports and processes the FDEP data.
{ "mcpServers": [ { "name": "fdepAnalyzer", "command": "fdep-mcp-server", "args": [], "env": { "FDEP_PATH": "/path/to/your/fdep/output" } } ] }
Note: The first time running the server takes time as it imports and processes the FDEP data.
{ "server_name": "fdepAnalyzer", "command": "fdep-mcp-server", "args": [], "environment": { "FDEP_PATH": "/path/to/your/fdep/output", "DB_HOST": "localhost", "DB_NAME": "code_as_data", "LOG_LEVEL": "INFO" } }
Note: The first time running the server takes time as it imports and processes the FDEP data.
# Required FDEP_PATH=/path/to/your/fdep/output # Database (if different from defaults) DB_HOST=localhost DB_PORT=5432 DB_NAME=code_as_data DB_USER=postgres DB_PASSWORD=postgres # Optional LOG_LEVEL=INFO DEV_MODE=false
After configuring your client, verify the connection:
- Start your MCP client
- Look for "fdepAnalyzer" in available tools/servers
- Test with a simple query:list_modules(limit=5)
- You should see your Haskell modules listed
# Search for validation functions search_functions(pattern="validation", limit=10) # Get details about main functions get_function_details(function_name="main") # Find most called functions get_most_called_functions(limit=20) # List modules in a specific area list_modules(limit=50)
# Get function call hierarchy get_function_call_graph(function_name="processData", depth=3) # Analyze type dependencies get_type_dependencies(type_name="User", include_dependents=true) # Find cross-module function calls find_cross_module_calls(source_module="Services", target_module="Database") # Complex JSON query execute_advanced_query({ "type": "function", "conditions": [ {"field": "name", "operator": "like", "value": "%Handler%"} ], "limit": 50 })
# Module dependency analysis get_module_dependencies(module_name="Core.Services", include_dependents=true) # Import relationship graph get_import_graph(root_module="Main", depth=3) # Complexity analysis analyze_function_complexity(module_name="BusinessLogic", min_complexity=5) # Comprehensive statistics get_code_statistics(include_details=true)
# Database DB_USER=postgres DB_PASSWORD=postgres DB_HOST=localhost DB_PORT=5432 DB_NAME=code_as_data # FDEP Data Source FDEP_PATH=/path/to/your/fdep/output # Logging LOG_LEVEL=INFO
- Add Spider flake input
- Configure cabal with fdep and fieldInspector plugins
- Run socket server during build
- Generate FDEP output for analysis
- πModule Analysis: 7 tools
- β‘Function Analysis: 8 tools
- ποΈType System: 6 tools
- πClass Analysis: 3 tools
- π¦Import Analysis: 4 tools
- πAdvanced Queries: 4 tools
- π―Pattern Analysis: 5 tools
- πSource Location: 3 tools
- π¬Enhanced Analysis: 3 tools
This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.
Boost security in your dev lifecycle via SAST, SCA, Secrets & IaC scanning with Cycode.
Enable AI agents to secure code with Semgrep.
Skene is a codebase analysis toolkit for product-led growth. It scan your codebase, detect growth opportunities, and generate actionable implementation plans.
Provides seamless integration with SonarQube Server or Cloud, and enables analysis of code snippets directly within the agent context
AI-to-AI code review platform β Claude, Codex, and Gemini cross-check each other via MCP, REST API, and CLI for consensus-based results.
A stateful LSP runtime for AI agents: warm language server sessions with 50+ tools for go-to-definition, find-references, diagnostics, rename, and more across 30+ languages.
Persistent code index using Tree-sitter for fast, precise code search. Replaces grep with ~50 token responses instead of 2000+.
AI-powered code quality analysis to detect best practice violations, security issues, and architectural problems in real-time.
Orchestrates a dual-AI engineering loop where a Primary AI plans and implements, while a Review AI validates and reviews, with continuous feedback for optimal code quality. Supports custom AI pairing (Claude, Codex, Gemini, etc.)
AmazingMCP β MCP Server for .NET / C# Codebases
An MCP server that gives AI agents deep understanding of C# codebases via Roslyn β type search, dependency graphs, usage analysis, and architecture overviews, all from a live in-memory compilation.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





