Provides 40+ static code analysis tools for enterprise-scale Haskell codebases, including module analysis, function call graphs, type system relationships, typeclass analysis, import dependencies, and complexity metrics.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FDEP MCP Serveranalyze the call graph for the processPayment function in the Billing module"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FDEP MCP Server
A Static Code Analysis Model Context Protocol (MCP) server delivering 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
⨠MCP Server Features
š 40+ Comprehensive Analysis Tools
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
š Quick Start
Prerequisites
Python 3.13+
UV package manager
PostgreSQL database (must be running)
FDEP output from Spider plugin (for comprehensive analysis)
Database Setup
Before installation, ensure PostgreSQL is running and create the required database:
Installation
Database Setup and Data Import
Important: Complete this step before using the MCP server with any client.
This command will:
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.
Configure Environment
š MCP Client Configuration
After installation, configure your preferred MCP client to connect to the FDEP server:
Claude Code
Add to your ~/.claude/settings.json:
Note: The first time running the server takes time as it imports and processes the FDEP data.
Cursor
Add to your Cursor settings (Cmd/Ctrl + , ā Extensions ā MCP):
Note: The first time running the server takes time as it imports and processes the FDEP data.
VS Code
Install the MCP extension and add to settings.json:
Note: The first time running the server takes time as it imports and processes the FDEP data.
Cline
Add to your Cline configuration:
Note: The first time running the server takes time as it imports and processes the FDEP data.
Continue.dev
Add to your .continue/config.json:
Note: The first time running the server takes time as it imports and processes the FDEP data.
Generic MCP Client
For any MCP-compatible client:
Note: The first time running the server takes time as it imports and processes the FDEP data.
Environment Variables for All Clients
Verify Connection
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
š ļø MCP Tools Available (40+ Total)
š Module Analysis (7 tools)
Tool | Description |
| Setup database and import FDEP data |
| Get list of modules with filtering |
| Detailed module info with statistics |
| List all functions in a module |
| Pattern-based module search |
| Module dependency analysis |
| Comprehensive codebase statistics |
ā” Function Analysis (8 tools)
Tool | Description |
| Detailed function information |
| Search functions by pattern |
| Find frequently called functions |
| Function call hierarchy |
| Who calls this function |
| What functions this calls |
| Function complexity metrics |
| Complete function context with dependencies |
šļø Type System Analysis (6 tools)
Tool | Description |
| Get types by module/pattern with categories |
| Type info with constructors/fields |
| Advanced type search with filtering |
| Type dependency analysis |
| Type usage patterns |
| Get nested type definitions |
š Class Analysis (3 tools)
Tool | Description |
| Get class definitions with filtering |
| Class info with instances |
| Pattern-based class search |
š¦ Import Analysis (4 tools)
Tool | Description |
| Import patterns and dependencies |
| Module import relationship graphs |
| Potential cleanup candidates |
| Comprehensive import information |
š Advanced Queries (4 tools)
Tool | Description |
| Basic SQL queries |
| JSON-based complex queries with joins |
| Custom SQL queries with parameters |
| Cross-module function usage |
šÆ Pattern Analysis (5 tools)
Tool | Description |
| Find functions similar to a given function |
| Find recurring code patterns |
| Group functions by similarity |
| Build comprehensive type dependency graph |
| Analyze deep type relationships |
š Source Location (3 tools)
Tool | Description |
| Find code elements by source location |
| Get context around a source location |
| Generate import statements for functions |
š¬ Enhanced Analysis (3 tools)
Tool | Description |
| Advanced pattern matching for code structures |
| Comprehensive dependency analysis |
| Enhanced call graphs with advanced options |
š Example Queries
Basic Analysis
Advanced Analysis
Architectural Analysis
āļø Configuration
Environment Variables (.env)
Spider Plugin Integration
For Haskell projects using GHC 9.2.8:
Add Spider flake input
Configure cabal with fdep and fieldInspector plugins
Run socket server during build
Generate FDEP output for analysis
Tool Distribution
š 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