project-explorer-mcp
Analyzes Python project structure by exploring directory trees, extracting outlines from Python and Markdown files, and inspecting OpenAPI specifications.
README
project-explorer-mcp
MCP server toolkit for analyzing the structure of a Python project.
Installation and Launch
Prerequisites
Install to Cursor IDE
{
"mcpServers": {
"project-explorer": {
"command": "uv",
"args": [
"--directory",
"path/to/project-explorer-mcp",
"run",
"project-explorer-mcp"
]
}
}
}
All tools are enabled by default: dir_tree, python_outline, markdown_outline, openapi_list_operations, openapi_get_operation_details
Configuration
The server can be configured using environment variables with the prefix PROJECT_EXPLORER_MCP__:
PROJECT_EXPLORER_MCP__DEFAULT_OUTPUT_FORMAT: Set the default output format for all tools (jsonormarkdown). Default ismarkdown.
Example:
export PROJECT_EXPLORER_MCP__DEFAULT_OUTPUT_FORMAT=json
Output Formats
All tools support two output formats:
- markdown (default): Returns structured markdown text that is more token-efficient for AI models to understand
- json: Returns structured JSON data for programmatic processing
You can override the default format per tool call using the output_format parameter.
Server Tools
dir_tree
-
Description: Returns a file and folder tree with depth limitation.
-
Parameters:
root_path: str— path to the root of the treemax_depth: int— maximum traversal depth (default: 1)output_format: str | None— output format:jsonormarkdown(default: server setting)
-
Output Example (markdown format):
## Directory Tree: /path/to/projecttests/test_sample.py tests/test_sample.md tests/test_dir_tree.md
-
Output Example (json format):
{ "root": "/path/to/project/tests", "tree": [ { "name": "test_dir_tree.md", "type": "file" }, { "name": "test_sample.md", "type": "file" }, { "name": "test_sample.py", "type": "file" } ] }
python_outline
-
Description: Returns an outline for each Python file (imports, classes, functions, docstrings).
-
Parameters:
paths: list[str]— list of paths to Python filesoutput_format: str | None— output format:jsonormarkdown(default: server setting)
-
Output Example (markdown format):
## tests/test_sample.py **Module docstring:** Module for outline test. The module contains an example class and function. ### Imports - `os` (line 3) - `sys` (line 4) ### Classes #### `Example` (line 7) Example class. **Methods:** - `method` (line 9) - Class method. ### Functions #### `func` (line 15) Example function. -
Output Example (json format):
{'tests/test_sample.py': {'docstring': 'Module for outline test.\n\nThe module contains an example class and function.', 'imports': [{'name': 'os', 'line': 3}, {'name': 'sys', 'line': 4}], 'classes': [{'name': 'Example', 'line': 7, 'docstring': 'Example class.', 'methods': [{'name': 'method', 'line': 9, 'docstring': 'Class method.'}]}], 'functions': [{'name': 'func', 'line': 15, 'docstring': 'Example function.'}]}}
markdown_outline
-
Description: Returns an outline for each Markdown file (headings, levels, line).
-
Parameters:
paths: list[str]— list of paths to Markdown filesoutput_format: str | None— output format:jsonormarkdown(default: server setting)
-
Output Example (markdown format):
## tests/test_sample.md ### Document Structure - **H1:** Heading 1 (line 1) - **H2:** Heading 2 (line 3) - **H3:** Heading 3 (line 5) - **H2:** Second H2 (line 9) -
Output Example (json format):
{'tests/test_sample.md': [{'level': 1, 'text': 'Heading 1', 'line': 1}, {'level': 2, 'text': 'Heading 2', 'line': 3}, {'level': 3, 'text': 'Heading 3', 'line': 5}, {'level': 2, 'text': 'Second H2', 'line': 9}]}
openapi_list_operations
-
Description: Lists all operations from an OpenAPI specification file.
-
Parameters:
spec_path: str— absolute path to the OpenAPI JSON or YAML fileoutput_format: str | None— output format:jsonormarkdown(default: server setting)
-
Output Example (markdown format):
# OpenAPI Operations | Method | Path | Operation ID | Summary | | ------ | -------- | ------------ | ----------------- | | GET | `/users` | listUsers | List all users | | POST | `/users` | createUser | Create a new user | -
Output Example (json format):
{ "operations": [ { "method": "GET", "path": "/users", "operation_id": "listUsers", "summary": "List users" } ], "count": 1, "error": null }
openapi_get_operation_details
-
Description: Gets detailed information for specific OpenAPI operations.
-
Parameters:
spec_path: str— absolute path to the OpenAPI JSON or YAML fileselectors: list[str]— list of selectors (operationId, "METHOD /path", or path)expand_refs: bool— whether to resolve $ref references (default: false)format_output: str | None— output format:jsonormarkdown(default: server setting)
-
Output Example (markdown format):
# OpenAPI Operation Details ## GET /users **Operation ID:** listUsers **Summary:** List all users **Description:** Get a list of all users ### Responses #### 200 Successful response **Content Types:** - `application/json`: `{'type': 'array', 'items': {'type': 'object'}}` --- -
Output Example (json format):
{ "details": [ { "method": "GET", "path": "/users", "operation_id": "listUsers", "summary": "List users", "description": "Retrieve a list of users", "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": {"type": "integer"}, "description": "Maximum number of results" } ], "responses": { "200": { "description": "Success", "content": { "application/json": {"type": "array", "items": {"type": "object"}} } } } } ], "count": 1, "error": null }
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.