Skip to main content

MCP server exposing read-only LSP navigation tools for Codex

Project description

codex-lsp-mcp

codex-lsp-mcp is a local MCP stdio server that exposes read-only LSP navigation tools to Codex.

Built-in defaults target clangd for C/C++ and pyright for Python; additional LSP backends can be configured in ~/.config/codex-lsp-mcp/config.toml.

Quick start

Run the published package from PyPI:

uvx codex-lsp-mcp

Local development

uv run pytest
uvx --from . codex-lsp-mcp

Codex configuration

codex mcp add codex-lsp-mcp -- uvx codex-lsp-mcp

Check registration:

codex mcp get codex-lsp-mcp

If clangd is not on Codex's PATH, set:

[mcp_servers.codex-lsp-mcp.env]
CLANGD_BIN = "/path/to/clangd"

For Python navigation, ensure pyright-langserver is on Codex's PATH. If pyright is installed in a non-standard location, override the built-in backend in ~/.config/codex-lsp-mcp/config.toml:

[servers.pyright]
command = "/home/miot/.local/share/nvim/mason/bin/pyright-langserver"
args = ["--stdio"]
root_markers = [["pyrightconfig.json"], ["pyproject.toml"], ["setup.py"], ["setup.cfg"], ["requirements.txt"], ["Pipfile"], ["poetry.lock"], [".git", ".repo"]]
workspace_hint_extension = ".py"

[servers.pyright.extension_to_language]
".py" = "python"

The server discovers the closest compile_commands.json from the queried file path.

Tool coordinates follow the LSP convention: zero-based line and character.

Workspace roots

File-oriented tools (definition, references, hover, diagnostics, and document_symbols) accept an optional root_hint argument. Use it when file is relative or when the MCP server process is not running from the project root:

{
  "file": "miio_test/cli.py",
  "line": 86,
  "character": 18,
  "root_hint": "/home/miot/Work/miot/tool/miio_test"
}

Absolute file paths are not rewritten by root_hint, but the hint is still used as the fallback workspace root when no server-specific root marker is found. Server-specific markers still take precedence, such as compile_commands.json for clangd and pyproject.toml for pyright.

workspace_symbols already accepts root_hint and can also take server_name when a directory is ambiguous across multiple configured LSP backends.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

codex_lsp_mcp-0.3.0.tar.gz (28.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

codex_lsp_mcp-0.3.0-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

Details for the file codex_lsp_mcp-0.3.0.tar.gz.

File metadata

  • Download URL: codex_lsp_mcp-0.3.0.tar.gz
  • Upload date:
  • Size: 28.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.17

File hashes

Hashes for codex_lsp_mcp-0.3.0.tar.gz
Algorithm Hash digest
SHA256 d0389c17735d710c924e5678ae87472efeb1c98b6611b604f09f5f80523721dd
MD5 35d070e133cb369ae2c92258b2b6bd25
BLAKE2b-256 3c70cbf269724f8b56395680ba5b964304443ba30627cd2620545a48dda0ef68

See more details on using hashes here.

File details

Details for the file codex_lsp_mcp-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for codex_lsp_mcp-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 87fc7fe29900ccef1fef30cd188436fbfe277b51c8fe8628ffa0aff3e4300e48
MD5 f55074944f47dd37da673a00ec32636b
BLAKE2b-256 0113aed3f4a4183b0c3aa6fe0121fbfab9d54fcb0fc9b98a2fd68a8e44ddbfd2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page