MCP ExplorerExplorer

Nuanced Mcp

@mattmorgison a year ago
9 MIT
FreeCommunity
AI Systems
A Model Context Protocol (MCP) server that provides call graph analysis capabilities to LLMs through the nuanced library

Overview

What is Nuanced Mcp

nuanced-mcp is a Model Context Protocol (MCP) server designed to enhance large language models (LLMs) by providing call graph analysis capabilities through the nuanced library.

Use cases

Use cases for nuanced-mcp include code refactoring, debugging, enhancing AI code assistants, and performing impact analysis on code changes to ensure better maintainability and understanding of software projects.

How to use

To use nuanced-mcp, initialize a code graph for a Python repository using the ‘initialize_graph’ tool, switch between repositories with ‘switch_repository’, and utilize various analysis tools to explore function relationships and dependencies.

Key features

Key features of nuanced-mcp include the ability to initialize call graphs, explore function call relationships, analyze dependencies, and assess the impact of changes in functions, all aimed at providing contextually aware code assistance.

Where to use

nuanced-mcp can be used in software development environments, particularly for projects involving Python codebases, where understanding code structure and dependencies is crucial.

Content

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 repos
  • 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

UV

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

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers