Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Typed LSP operations for MCP clients.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
作者はレジストリにインストール情報を載せていません。下にある作者のREADMEをご覧ください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント jolars で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.2.2)がレジストリに届いたのは42 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにRustも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Python MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Local-only Python MCP server for the Files.com API.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Deixis is a Model Context Protocol (MCP) server that gives coding agents typed access to Language Server Protocol (LSP) operations. It manages explicitly configured language servers for one project and exposes their semantic capabilities without adding another filesystem, shell, editor, index, or memory layer.
[!WARNING]
Deixis is pre-alpha. Its semantic tools and guarded rename workflow work, but
no stability guarantees are available yet.
A configured Deixis session exposes fifteen read-only MCP tools by default. Starting it with --allow-mutation adds apply_rename as a sixteenth tool.
| Tool | Purpose |
|---|---|
deixis_server_status | List attached servers or inspect one server in detail. |
hover | Return hover markup at a zero-based UTF-8 position. |
signature_help | Return call signatures and structured parameter details. |
definition | Find definitions. |
declaration | Find declarations. |
type_definition | Find type definitions. |
implementation | Find implementations. |
references | Find references, with explicit declaration inclusion. |
incoming_calls | Find callers and their call sites. |
outgoing_calls | Find callees and their call sites. |
diagnostics | Request pull diagnostics or return cached push diagnostics. |
document_symbols | Inspect a file outline when its symbol structure is needed. |
workspace_symbols | Search attached servers, or one explicitly named server. |
prepare_rename | Check whether a symbol can be renamed at a position. |
preview_rename | Validate edits and return a diff plus a one-shot preview ID. |
apply_rename | Apply one exact preview (requires --allow-mutation). |
Deixis negotiates UTF-8, UTF-16, and UTF-32 positions, synchronizes documents from disk before file-scoped requests, gates every operation on the language server's advertised capabilities, and preserves source-server provenance in results. Several language servers may serve one immutable project root.
Recoverable LSP cancellations are retried up to three times after a bounded readiness wait. Retries share the original request timeout and stop when the MCP caller cancels. If retries are exhausted, the error reports the attempt count and preserves the language server's error details.
Navigation, hover, signature help, references, symbols, and call-hierarchy preparation also retry empty results observed during indexing and ContentModified errors within the same timeout and three-retry limit. After an empty result, Deixis waits for readiness up to the request deadline instead of spending retries while indexing continues. A server that remains busy produces a request_timeout error (30 seconds by default). ContentModified errors wait up to five seconds for readiness per retry. File-scoped retries verify that both the synchronized document and its contents on disk are unchanged before reusing a position. Nonempty results and empty results from servers with ready or unknown status throughout the request return immediately.
Use definition, type_definition, implementation, and references directly for targeted symbol navigation. Use document_symbols only when you need a file outline, such as a view of its types, functions, and nested members. It is not a default navigation step or a prerequisite for other queries. This guidance is also included in the MCP initialization instructions and tool description.
Calling deixis_server_status without arguments lists attached servers in lexical order and counts the remaining configured servers:
attached: python, rust
not attached: 3
An empty list is shown as attached: none; the count is included even when zero. Structured output contains attached (an array of configured names) and notAttached (a count). A server is attached after Deixis has synchronized at least one document with its current process. Servers that have not started or have started without a synchronized document count as not attached. Pass server for its detailed lifecycle and capability snapshot; start: true also requires an explicit server name.
references, incoming_calls, outgoing_calls, document_symbols, and workspace_symbols accept an optional limit (default 100, maximum 500) and offset (default 0). Each page also caps the compact JSON result array at 64 KiB. The structured pagination object reports returned, total, truncated, and, when more results remain, nextOffset. Continue with that offset and the same query arguments. Each call reruns the query, so file edits, indexing progress, or changes to attached servers can shift results between pages. Text responses summarize the page.
Every nested document symbol counts toward the limit. Symbols retain their hierarchy within a page; index and parentIndex identify relationships across pages, and childCount reports the full number of direct children. Individual items too large for a page are omitted, with their indexes listed in pagination.omitted and truncated: true. Pagination advances past these items. Counts and byte limits apply to the normalized results returned by Deixis; language servers still compute their full responses.
See DESIGN.md for the protocol and architecture and TODO.md for planned work.
Language servers are separate programs; install the ones you configure and make them visible in the environment of the MCP host.
The [latest GitHub release] provides archives for x86-64 and ARM64 Linux, Intel and Apple silicon macOS, and x86-64 Windows. Linux releases include both glibc and static musl builds.
Install the appropriate release automatically on Linux or macOS:
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/jolars/deixis/releases/latest/download/deixis-installer.sh | sh
Or from PowerShell on Windows:
powershell -ExecutionPolicy Bypass -c "irm https://github.com/jolars/deixis/releases/latest/download/deixis-installer.ps1 | iex"
The installers place deixis in Cargo's binary directory. Each release also includes SHA-256 checksums and GitHub build attestations. Verify a downloaded archive with:
gh attestation verify deixis-aarch64-apple-darwin.tar.xz --repo jolars/deixis
Install the default flake package:
nix profile install github:jolars/deixis
Or run it without installing:
nix run github:jolars/deixis -- --root /path/to/project --config /path/to/config.toml
Rust 1.98.0 or newer is required:
cargo install deixis --locked
The crates.io package belongs to the MCP Registry identity mcp-name: io.github.jolars/deixis.
To build a checkout instead:
git clone https://github.com/jolars/deixis.git
cd deixis cargo build --release --locked
The resulting binary is target/release/deixis (deixis.exe on Windows).
Start with the tested example configuration, or define a single server:
[servers.rust]
command = "rust-analyzer" file_extensions = { ".rs" = "rust" }
Pass the file explicitly with --config, or install it as the user configuration:
| Platform | Default path when XDG_CONFIG_HOME is unset |
|---|---|
| Linux and other Unix | ~/.config/deixis/config.toml |
| macOS | ~/Library/Application Support/deixis/config.toml |
| Windows | %APPDATA%\deixis\config.toml |
$XDG_CONFIG_HOME/deixis/config.toml takes precedence on every platform when that variable is set. An explicit --config takes precedence over the user configuration. Deixis never discovers configuration in the project tree.
The configuration is strict: unknown fields, empty commands, invalid routes, and zero-valued bounds stop startup with an error. The configuration reference documents every field, default, routing rule, and process limit.
Deixis is a local stdio server. The MCP host must launch the binary directly; do not wrap it in a shell command. Set the project either with --root or by starting Deixis in the project directory. The root defaults to the current working directory and is canonicalized once at startup.
Add Deixis from the command line:
codex mcp add deixis --env RUST_LOG=deixis=info -- /absolute/path/to/deixis --root /absolute/path/to/project --config /absolute/path/to/config.toml
Or add a project-scoped .codex/config.toml:
[mcp_servers.deixis]
command = "/absolute/path/to/deixis" args = [ "--root", "/absolute/path/to/project", "--config", "/absolute/path/to/config.toml", ] tool_timeout_sec = 70
[mcp_servers.deixis.env] RUST_LOG = "deixis=info"
The 70-second host tool timeout accommodates the default 30-second LSP startup and request bounds when the first tool call starts a server lazily. Codex's startup_timeout_sec applies to the Deixis MCP handshake, not to a downstream language server. See the current [Codex MCP documentation] for all host-side options.
For a host that uses an mcpServers JSON object, use the equivalent stdio entry. Consult the host's documentation for its configuration file location.
{
"mcpServers": { "deixis": { "command": "/absolute/path/to/deixis", "args": [ "--root", "/absolute/path/to/project", "--config", "/absolute/path/to/config.toml" ], "env": { "RUST_LOG": "deixis=info" } } } }
Use absolute paths when the host does not inherit your interactive shell's PATH. The configured language-server commands must also resolve in the host's environment.
The flake provides homeManagerModules.default. A nonempty typed server catalog installs Deixis, writes its user configuration, and registers one root-agnostic command in programs.mcp.servers:
Add the flake input:
inputs.deixis = {
url = "github:jolars/deixis"; inputs.nixpkgs.follows = "nixpkgs"; };
Then import and configure the Home Manager module:
{ inputs, ... }:
{ imports = [ inputs.deixis.homeManagerModules.default ];
programs.deixis = { enable = true; servers = { rust = { command = "rust-analyzer"; fileExtensions.".rs" = "rust"; }; typescript = { command = "typescript-language-server"; args = [ "--stdio" ]; fileExtensions.".ts" = "typescript"; }; }; }; }
The generated command has no fixed root, so each MCP process binds to its working directory. Set programs.deixis.configFile instead of servers to install an existing TOML file. The two options are mutually exclusive.
Language servers start only when selected by a tool call. File-scoped tools accept a project-relative or root-contained absolute path and an optional configured server name. Position-based tools also accept:
{ "line": 12, "character": 8 }
Both values are zero-based; character is a UTF-8 byte
冒頭だけを表示しています。続きはリポジトリで読めます