{"id":50056002,"url":"https://github.com/code-yeongyu/lsp-tools-mcp","last_synced_at":"2026-05-21T13:14:47.583Z","repository":{"id":358598277,"uuid":"1241960414","full_name":"code-yeongyu/lsp-tools-mcp","owner":"code-yeongyu","description":"Standalone Language Server Protocol tools exposed as a stdio MCP server. Consumed by codex-lsp and oh-my-openagent.","archived":false,"fork":false,"pushed_at":"2026-05-18T04:53:12.000Z","size":60,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-18T06:49:45.299Z","etag":null,"topics":["language-server-protocol","lsp","mcp","model-context-protocol","nodejs","typescript"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/code-yeongyu.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-18T02:16:58.000Z","updated_at":"2026-05-18T04:53:15.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/code-yeongyu/lsp-tools-mcp","commit_stats":null,"previous_names":["code-yeongyu/lsp-tools-mcp"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/code-yeongyu/lsp-tools-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-yeongyu%2Flsp-tools-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-yeongyu%2Flsp-tools-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-yeongyu%2Flsp-tools-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-yeongyu%2Flsp-tools-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/code-yeongyu","download_url":"https://codeload.github.com/code-yeongyu/lsp-tools-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-yeongyu%2Flsp-tools-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33301849,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-21T12:23:38.849Z","status":"ssl_error","status_checked_at":"2026-05-21T12:22:11.673Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["language-server-protocol","lsp","mcp","model-context-protocol","nodejs","typescript"],"created_at":"2026-05-21T13:14:45.035Z","updated_at":"2026-05-21T13:14:47.572Z","avatar_url":"https://github.com/code-yeongyu.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lsp-tools-mcp\n\n[![ci](https://github.com/code-yeongyu/lsp-tools-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/code-yeongyu/lsp-tools-mcp/actions/workflows/ci.yml) [![license: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\nStandalone Language Server Protocol tools exposed as a stdio MCP server.\n\n## Used By\n\nThis repository is the upstream source of truth for two downstream plugins. Both consume it as a git submodule:\n\n| Project | Path | Role |\n|---------|------|------|\n| **[codex-lsp](https://github.com/code-yeongyu/codex-lsp)** | `packages/lsp-tools-mcp/` | Codex plugin that ships these LSP MCP tools plus a Codex-specific PostToolUse diagnostics hook. |\n| **[oh-my-openagent](https://github.com/code-yeongyu/oh-my-openagent)** (a.k.a. `oh-my-opencode`) | `vendor/lsp-tools-mcp/` | OpenCode plugin that registers this server as a built-in Tier-1 stdio MCP. Exposes `lsp_diagnostics`, `lsp_goto_definition`, `lsp_find_references`, `lsp_symbols`, `lsp_prepare_rename`, `lsp_rename`, and `lsp_status` to all agents. |\n\nIf you fix or extend the LSP runtime here, both downstreams pick up the change by bumping the submodule pointer. Do not fork the runtime into a downstream; land changes here instead.\n\n## Quick Start\n\n```bash\nnpm install\nnpm run check\nnpm test\nnpm run build\nprintf '%s\\n' '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\"}' | node dist/cli.js mcp\n```\n\n## MCP Tools\n\nThis server exposes the following tools:\n\n- `lsp.status`\n- `lsp.diagnostics`\n- `lsp.goto_definition`\n- `lsp.find_references`\n- `lsp.symbols`\n- `lsp.prepare_rename`\n- `lsp.rename`\n\nTool aliases are also available for compatibility:\n\n- `lsp_status`\n- `lsp_diagnostics`\n- `lsp_goto_definition`\n- `lsp_find_references`\n- `lsp_symbols`\n- `lsp_prepare_rename`\n- `lsp_rename`\n\nWhen an MCP host registers this server under the name `lsp` (the default in both downstreams), the tools are exposed to agents as `lsp_status`, `lsp_diagnostics`, and so on, matching the alias names above.\n\n## Configuration\n\nDefault config paths (matches codex-lsp's historical layout):\n\n- Project: `.codex/lsp-client.json`\n- User: `~/.codex/lsp-client.json`\n\nPath overrides via environment variables:\n\n- `LSP_TOOLS_MCP_PROJECT_CONFIG`\n- `LSP_TOOLS_MCP_USER_CONFIG`\n\nExamples (oh-my-openagent points the project config at `.opencode/lsp.json` via the env var):\n\n```bash\nLSP_TOOLS_MCP_PROJECT_CONFIG=.opencode/lsp.json node dist/cli.js mcp\nLSP_TOOLS_MCP_USER_CONFIG=.opencode/lsp.json node dist/cli.js mcp\n```\n\nExample config file:\n\n```json\n{\n\t\"lsp\": {\n\t\t\"typescript\": {\n\t\t\t\"command\": [\"typescript-language-server\", \"--stdio\"],\n\t\t\t\"extensions\": [\".ts\", \".tsx\", \".js\", \".jsx\"]\n\t\t}\n\t}\n}\n```\n\n## Architecture\n\n- `src/lsp/*` standalone LSP runtime (process management, JSON-RPC transport, configuration, diagnostics, workspace edits)\n- `src/tools.ts` MCP tool definitions and handlers\n- `src/mcp.ts` stdio MCP server entry and registration\n- `src/cli.ts` standalone CLI entry (`mcp` subcommand only)\n\n## Local Development\n\n```bash\nnpm install\nnpm run check\nnpm test\nnpm pack --dry-run\n```\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-yeongyu%2Flsp-tools-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcode-yeongyu%2Flsp-tools-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-yeongyu%2Flsp-tools-mcp/lists"}