← Back to search

io.github.daedalus/mcp-pyright

daedalus Scanned 23d ago

MCP server that exposes Pyright language server functionality

B
86.6 / 100

Versions

0.1.0latest
first seen May 19, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 7

check_types
annotations: none low

Check types in a Python file or string of code. Performs type checking using Pyright and returns diagnostics. Args: code: Python code as string (mutually exclusive with file_path). file_path: Path to Python file (mutually exclusive with code). python_path: Optional path to Python interpreter. type_checker_mode: Type checking mode - "basic", "strict", or "overload" (default: "basic"). Returns: Dictionary containing diagnostics, file analyzed, and type checking time. Raises: ValueError: If neither code nor file_path is provided. FileNotFoundError: If file_path doesn't exist. RuntimeError: If pyright is not installed. Example: >>> check_types(code="x: int = 'hello'") {'file': '/tmp/...', 'diagnostics': [{'severity': 'error', 'message': '...'}], 'typeCheckingTime': 0.1}

code string file_path string python_path string type_checker_mode str
get_hover
annotations: none low

Get hover information at a specific position. Returns type information and documentation for the symbol at the given position. Args: code: Python code as string. position: Character position (0-indexed) in the code. python_path: Optional path to Python interpreter. Returns: Dictionary with contents (markdown), range, and kind. Example: >>> get_hover("x: int = 1", 0) {'contents': '```python\nint\n```', 'range': {...}, 'kind': 'python'}

code str position int python_path string
get_completions
annotations: none low

Get code completions at a specific position. Returns available completions at the given cursor position. Args: code: Python code as string. position: Character position (0-indexed) in the code. python_path: Optional path to Python interpreter. Returns: Dictionary with completion items (label, detail, documentation, insertText). Example: >>> get_completions("prin", 4) {'items': [{'label': 'print', 'detail': 'def print(...)', ...}]}

code str position int python_path string
get_definition
annotations: none low

Get definition location at a specific position. Returns the location of the definition for the symbol at the given position. Args: code: Python code as string. position: Character position (0-indexed) in the code. python_path: Optional path to Python interpreter. Returns: Dictionary with definition location (file path, range). Example: >>> get_definition("def foo(): pass\nfoo()", 15) {'file': '/tmp/...', 'range': {'start': {'line': 0, 'character': 0}, ...}}

code str position int python_path string
find_references
annotations: none low

Find all references to a symbol at a specific position. Returns all reference locations for the symbol at the given position. Args: code: Python code as string. position: Character position (0-indexed) in the code. python_path: Optional path to Python interpreter. Returns: Dictionary with reference locations. Example: >>> find_references("x = 1\nx", 5) {'references': [{'file': '/tmp/...', 'range': {...}}, ...]}

code str position int python_path string
get_document_symbols
annotations: none low

Get all symbols in a Python document. Returns document symbols including functions, classes, variables, etc. Args: code: Python code as string. python_path: Optional path to Python interpreter. Returns: Dictionary with symbol information (name, kind, range, containerName). Example: >>> get_document_symbols("class Foo: pass\ndef bar(): pass") {'symbols': [{'name': 'Foo', 'kind': 'class', ...}, {'name': 'bar', 'kind': 'function', ...}]}

code str python_path string
format_code
annotations: none low

Format Python code. Formats the given Python code using pyright's formatter. Args: code: Python code as string. python_path: Optional path to Python interpreter. Returns: Dictionary with formatted code. Example: >>> format_code("x=1\ny=2") {'formattedCode': 'x = 1\ny = 2\n'}

code str python_path string

Permissions 2

filesystem low
Server uses filesystem capabilities via: pathlib, tempfile
shell high
Server uses shell capabilities via: subprocess

Scan Findings 21

low
Tool 'check_types' has no annotations annotation_checker · 100%
low
Tool 'get_hover' has no annotations annotation_checker · 100%
low
Tool 'get_completions' has no annotations annotation_checker · 100%
low
Tool 'get_definition' has no annotations annotation_checker · 100%
low
Tool 'find_references' has no annotations annotation_checker · 100%
low
Tool 'get_document_symbols' has no annotations annotation_checker · 100%
low
Tool 'format_code' has no annotations annotation_checker · 100%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
info
pyproject.toml metadata manifest_parser · 100%
info
Tool: check_types manifest_parser · 90%
info
Tool: get_hover manifest_parser · 90%
info
Tool: get_completions manifest_parser · 90%
info
Tool: get_definition manifest_parser · 90%
info
Tool: find_references manifest_parser · 90%
info
Tool: get_document_symbols manifest_parser · 90%
info
Tool: format_code manifest_parser · 90%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
low
Permission: filesystem access detected permission_analyzer · 70%
high
Permission: shell access detected permission_analyzer · 95%
info
No dependency files found for SBOM generation sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%