MCP HubMCP Hub
MattMorgis

nuanced-mcp

by: MattMorgis

A Model Context Protocol (MCP) server that provides call graph analysis capabilities to LLMs through the nuanced library

9created 06/03/2025
Visit
analysis
LLM

📌Overview

Purpose: The Nuanced MCP Server enhances the capabilities of large language models (LLMs) by providing in-depth call graph analysis for Python code repositories.

Overview: This server employs the Model Context Protocol (MCP) to help LLMs comprehend the structure and relationships within code through function call graphs. It empowers AI assistants to better support developers by delivering contextual insights and analysis.

Key Features:

  • Initialize Call Graph: Sets up a code graph for a specified Python repository, enabling the server to navigate and analyze its structure.

  • Analyze Dependencies: Identifies and explores dependencies between functions or modules, facilitating a deeper understanding of code relationships and potential impacts of changes.


Nuanced MCP Server

A Model Context Protocol (MCP) server that provides call graph analysis capabilities to LLMs through the nuanced library.

Overview

This MCP server enables LLMs to understand code structure by accessing function call graphs through standardized tools and resources. It allows AI assistants to:

  • Initialize call graphs for Python repositories
  • Explore function call relationships
  • Analyze dependencies between functions
  • Provide more contextually aware code assistance

API

Tools

  • initialize_graph

    • Initialize a code graph for the given repository path
    • Input: repo_path (string)
  • switch_repository

    • Switch to a different initialized repository
    • Input: repo_path (string)
  • list_repositories

    • List all initialized repositories
    • No inputs required
  • get_function_call_graph

    • Get the call graph for a specific function
    • Inputs:
      • file_path (string)
      • function_name (string)
      • repo_path (string, optional) - uses active repository if not specified
  • analyze_dependencies

    • Find all module or file dependencies in the codebase
    • Inputs (at least one required):
      • file_path (string, optional)
      • module_name (string, optional)
  • analyze_change_impact

    • Analyze the impact of changing a specific function
    • Inputs:
      • file_path (string)
      • function_name (string)

Resources

  • graph://summary

    • Get a summary of the currently loaded code graph
    • No parameters required
  • graph://repo/{repo_path}/summary

    • Get a summary of a specific repository's code graph
    • Parameters:
      • repo_path (string) - Path to the repository
  • graph://function/{file_path}/{function_name}

    • Get detailed information about a specific function
    • Parameters:
      • file_path (string) - Path to the file containing the function
      • function_name (string) - Name of the function to analyze

Prompts

  • analyze_function

    • Create a prompt to analyze a function with its call graph
    • Parameters:
      • file_path (string) - Path to the file containing the function
      • function_name (string) - Name of the function to analyze
  • impact_analysis

    • Create a prompt to analyze the impact of changing a function
    • Parameters:
      • file_path (string) - Path to the file containing the function
      • function_name (string) - Name of the function to analyze
  • analyze_dependencies_prompt

    • Create a prompt to analyze dependencies of a file or module
    • Parameters (at least one required):
      • file_path (string, optional) - Path to the file to analyze
      • module_name (string, optional) - Name of the module to analyze

Usage with Claude Desktop

Add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "nuanced": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/nuanced-mcp",
        "run",
        "nuanced_mcp_server.py"
      ]
    }
  }
}