universal-lsp
1つのリポジトリに2つのプロジェクトがあり、一方が他方を必要とするため一緒に構築されています:
Universal LSP — 多くの言語をLuaで宣言されたプラグインを通じてカバーする、単一で高速、低メモリのC++言語サーバーです。セマンティック解析を含むすべての解析層は、1つのプロセス内でネイティブに実行されます。rust-analyzer、pyright、clangd、その他のバイナリやネットワークサービスを起動したり、プロキシしたり、依存したりすることはありません。ターミナルファーストでエージェント駆動の世界のために構築されています:エディタ向けの標準LSP over stdio、エージェント向けのMCPフロントエンド、CI向けのヘッドレスバッチクエリCLI。
graph-lite — 欠けていたグラフのためのSQLite:小さく、依存関係のない、埋め込み可能なプロパティグラフライブラリで、どのプロジェクトでも単一のヘッダーで取り込めます。その公開面はC ABIであり、Ruby、JavaScript、Python、Rust、Go、CはそれぞれのFFIを通じて埋め込むことができ、同期を保つためのラッパーは不要です — これがSQLiteに広がりを与えたのと同じものです。LSPはその最初で最も要求の厳しい消費者です — 大規模なコードベース全体のコールグラフ、インポートグラフ、シンボル関係を、インタラクティブなレイテンシの下で扱います — しかしgraph-liteのAPIはそのような語彙から自由に保たれ、機械的にそれを学ぶことを防がれています。
ステータス: 実装前。 リポジトリ、ゲート、ドキュメント、計画は整っています。現在の作業はビルドフェーズ1(graph-liteコア)です。ここにあるものはまだリリースされていません。スコープは
docs/spec.mdにあり、進捗はマイルストーンにあります。
なぜ
今日、すべての言語は独自のサーバー、独自のプロセス、独自のメモリフットプリント、そして「定義へ移動」のコストについて独自の考えを持っています。4つの言語で4つのプロジェクトを開くと、何も共有しない12のプロセスが実行されます — キャッシュもインデックスも関係グラフもありません。そして、それらのどれも、現在の読み書きの大部分を担うクライアント向けに設計されていません:エディタを接続せず、ターミナルで作業し、ディスク上に直接変更をバースト的に行うAIエージェントです。
Universal LSPはそのすべてを1つのプロセスで処理します。言語を追加するということは、新しいサーバーを書くのではなく、宣言的なLuaルールを書くことを意味します。
Related MCP server: agentmako
ティア
言語は、そのプラグインのルールが記述する正確な深さを得ます — それ以上でもそれ以下でもなく、マシンにインストールされているものに依存することもありません。
ティア | 提供するもの | 駆動するもの |
1 — 構文 | ハイライト、折りたたみ、アウトライン、括弧のマッチング | tree-sitter 文法リファレンス + クエリファイル |
2 — 構造 | 定義へ移動、参照の検索、名前変更、ワークスペースシンボル | 宣言的なスコープ/バインディングルール + オプションの純Luaコールバック |
3 — セマンティクス | 型を考慮したホバー、型診断、セマンティック補完 | 共有ネイティブ単一化コア上の宣言的な型ルール |
4 — 関係 | コールグラフ、インポートグラフ、影響範囲、コールパス | Tier 2/3 の出力を graph-lite に具体化 |
Tier 4はエージェントが実際に望むものです:これを推移的に呼び出すものとこれを変更したら何が壊れるか — 100回のファイル読み取りではなく、事前計算されたグラフから答えられます。
アーキテクチャ
editor ──stdio LSP──┐
agent ──MCP────────┤
CI ──batch CLI──┘
│
┌──────▼──────┐
│ shim/cli │ thin entrypoints, no logic
└──────┬──────┘
│ unix socket
┌────────▼─────────┐
│ daemon │ one per user, many sessions,
│ engine/ │ warm caches, per-workspace state
└────┬────────┬────┘
tree-sitter │
+ Lua rules │
│ │
┌────▼─────┐ ┌────▼─────┐
│ analysis │──▶ graph-lite│ generic nodes + typed edges
└──────────┘ └──────────┘ (knows nothing about code)依存関係は一方向にのみ流れます:analysis → graph-lite、決して逆にはなりません。2つのlintガードとスタンドアロンビルドのCIジョブがそれを維持します。なぜなら、代替案 — 抽出時に気づくこと — は書き直しになるからです。
クイックスタート
git clone https://github.com/developerz-ai/universal-lsp.git
cd universal-lsp
bin/setup # prerequisites → configure → link compile_commands.json
bin/check # the full gate: format, guards, build, tests, sanitizers
bin/dev doctor # one row per thing that can driftCMake ≥ 3.24、Ninja、C++20コンパイラ、clang-format、そしてリポジトリツール用のBunが必要です。bin/setupは不足しているものとそのインストール方法を示します。
graph-liteを単独で埋め込む
graph-liteはこのリポジトリの知識なしでビルドされます — それはすべてのPRで検証され、後で抽出する際に書き直しではなくgit mvのままであることを保証します:
cmake -S graph-lite -B build/graph-lite -G Ninja
cmake --build build/graph-lite#include "graph-lite.h" /* the contract: C linkage, opaque handles, status codes */#include "graph-lite.hpp" // C++ ergonomics over the same entry points, header-onlyrequire "ffi" # and the same from Ruby, JS, Python, Rust, Go
module GraphLite
extend FFI::Library
ffi_lib "graph-lite"
attach_function :graph_lite_version_string, [], :string
endテストスイート内のC翻訳単位はCとしてコンパイルされリンクされるため、C互換でなくなったヘッダーは、あなたの統合ではなく私たちのビルドを失敗させます。
APIとデータモデル:docs/graph-lite/README.md · Cを選んだ理由:ADR 0004。
ローンチ時の言語
TypeScript · JavaScript · Ruby · C · C++ · Lua · Python · Java · Kotlin · Swift · Rust
Tier 1と2は11言語すべてで最初に提供されます — それがエディタとエージェントの両方にとっての価値の大部分です。Tier 3の深さはそこから言語ごとに成長し、誤った型ではなく「不明な型」に劣化します。
ドキュメント
読む | 目的 |
完全なスコープ契約 — 目標、非目標、ビルドフェーズ | |
他の人の出荷済みバグで既に代償を払った落とし穴 | |
あたかも単独で存在するかのように書かれたライブラリ | |
位置エンコーディング、ファイルシステム変更処理、デーモン設計 | |
新しい言語を教える | |
このリポジトリの作業方法 — 最初の変更の前に読んでください |
コントリビュート
CONTRIBUTING.mdを読み、次にCLAUDE.mdを読んでください。公式の11言語以外の言語のプラグインは承認もこのリポジトリ内の場所も必要ありません — gitリポジトリを公開してピン留めしてください。
ライセンス
エンジンはApache-2.0です。**graph-liteはMIT**であり、意図的に独立してバージョン管理されています:単一のヘッダーを埋め込む際に、それを育てたもののライセンスについて考える必要が決してないように。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceDeep code indexing for AI agents. Search symbols, navigate call graphs, explore inheritance, track git history — all via MCP.54MIT
- AlicenseBqualityAmaintenanceLocal-first codebase intelligence engine providing AI coding agents with a typed MCP toolset for understanding and navigating code repositories.10051Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI clients to perform local code search, indexing, and analysis across Java, JavaScript/TypeScript, .NET/C#, and Python projects through the MCP protocol.2Apache 2.0
- AlicenseNot gradedqualityAmaintenanceMCP server for local-first code intelligence, providing structural code graph, semantic search, and impact analysis to AI agents.2MIT
Related MCP Connectors
Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/developerz-ai/universal-lsp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server