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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0389c17735d710c924e5678ae87472efeb1c98b6611b604f09f5f80523721dd
|
|
| MD5 |
35d070e133cb369ae2c92258b2b6bd25
|
|
| BLAKE2b-256 |
3c70cbf269724f8b56395680ba5b964304443ba30627cd2620545a48dda0ef68
|
File details
Details for the file codex_lsp_mcp-0.3.0-py3-none-any.whl.
File metadata
- Download URL: codex_lsp_mcp-0.3.0-py3-none-any.whl
- Upload date:
- Size: 13.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
87fc7fe29900ccef1fef30cd188436fbfe277b51c8fe8628ffa0aff3e4300e48
|
|
| MD5 |
f55074944f47dd37da673a00ec32636b
|
|
| BLAKE2b-256 |
0113aed3f4a4183b0c3aa6fe0121fbfab9d54fcb0fc9b98a2fd68a8e44ddbfd2
|