SkillAgentSearch skills...

lockdoc

MCP server that gives coding agents the API docs of a Rust project's dependencies, at the exact versions and features in its Cargo.lock

Install / Use

claude mcp add edg-l -- npx -y github:edg-l/lockdoc

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

76/100

Supported Platforms

Claude Code
Claude Desktop

Our assessment of lockdoc

lockdoc scores 76/100 on our quality scale, 833rd of 947 AI & Machine Learning skills we index.

Its MCP Server is 5.0 KB long, split into 6 sections with 4 code examples: a solid amount of guidance for an agent.

It has 3 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
26/30
Structure
18/20
Description
15/15
Adoption
3/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated 4 days ago, so lockdoc is actively maintained.
  • It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

lockdoc compared with similar skills

All 4 of these similar skills score higher than lockdoc; compare them before choosing.

SkillScoreStarsUpdatedFormat
lockdoc (this skill)by edg-l7634d agoMCP Server
Agent-Reachby Panniantong100106.8k5d agoCLAUDE.md
claude-memby thedotmack100106.0ktodayCLAUDE.md
Understand-Anythingby Egonex-AI10089.0k4d agoCLAUDE.md
headroomby headroomlabs-ai10078.4ktodayCLAUDE.md

Frequently asked questions

How do I install lockdoc?
Run claude mcp add edg-l -- npx -y github:edg-l/lockdoc. The install tabs above show the steps for each supported agent.
Which AI agents does lockdoc work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is lockdoc safe to use?
It is Apache-2.0-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is lockdoc still maintained?
The repository was last updated 4 days ago, so lockdoc is actively maintained.
<div align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/edg-l/lockdoc/master/assets/logo/lockdoc-dark.svg"> <img src="https://raw.githubusercontent.com/edg-l/lockdoc/master/assets/logo/lockdoc.svg" width="112" height="112" alt="lockdoc logo: a page of docs with a key laid across it as a bookmark"> </picture>

lockdoc

API docs for your dependencies, at the versions in your Cargo.lock.

An MCP server for coding agents working in Rust.

License: Apache-2.0

</div>

Coding agents write Rust against the API they remember, and they remember whichever version was common in their training data. When your project pins bevy 0.20 and the agent learned 0.15, it writes calls that no longer exist, and the compiler is the first to notice.

lockdoc gives the agent the real signatures instead. It builds rustdoc JSON for each dependency at the exact version and feature set your lockfile resolves, and answers lookups from it:

> item tokio::sync::Mutex

struct tokio::sync::Mutex  (tokio 1.53.3)
defined at tokio::sync::mutex::Mutex

pub struct Mutex<T: ?Sized> {
    /* private fields */
}

An asynchronous `Mutex`-like type.
…

Inherent items (10):
  fn new(t: T) -> Self where T: Sized  // Creates a new lock in an unlocked state ready for use.
  async fn lock(&self) -> MutexGuard<'_, T>  // Locks this mutex, causing the current task to yield until the lock has been acquired.
  fn try_lock(&self) -> Result<MutexGuard<'_, T>, TryLockError>  // Attempts to acquire the lock, and returns [`TryLockError`] if the lock is currently held somewhere else.
  …

Trait impls: Debug, Default, From<T>, Send, Sync

Paths resolve the way use does, through re-exports and globs, so bevy::prelude::Transform finds the struct in bevy_transform and reports which crate and version it came from.

Install

lockdoc needs a nightly toolchain, because rustdoc's JSON output is nightly-only. The nightly is pinned so its output format matches the parser lockdoc is built with.

rustup toolchain install nightly-2026-10-07
cargo install lockdoc

Then register it with your agent. For Claude Code, across all projects:

claude mcp add --scope user lockdoc -- lockdoc serve

The server works on the cargo workspace it is started in. Claude Code starts MCP servers in the project directory, so nothing else is needed; every tool also takes a project path.

Tools

| Tool | What it returns | |---|---| | item | One item by path: declaration, docs, and its methods, fields, variants, trait impls or module contents. Type::method shows a single associated item. | | search | Public items under a crate or module, or across every direct dependency, whose name matches, each at its shortest public path with its signature. | | deps | The workspace's direct dependencies with locked versions and enabled features. |

The same queries run from the shell, which is handy for checking what the agent sees:

lockdoc item serde::Serialize
lockdoc search bevy Commands --limit 5
lockdoc search JpegDecoder
lockdoc -C ~/dev/my-game deps

docs/tools.md has every parameter and the output format.

It stays out of your project's way

  • Builds go to lockdoc's own target directory under ~/.cache/lockdoc. Your target/ and cargo's build lock on it are never touched, so cargo build in the project never waits on lockdoc.
  • Every cargo command runs with --locked, so lockdoc cannot rewrite Cargo.lock; an out-of-date lockfile is reported as an error. Cargo may download a locked crate's source into ~/.cargo when this machine does not have it yet, as cargo build would.
  • The toolchain is selected with +nightly-…, so a rust-toolchain.toml in the project does not change it.
  • A lookup that had to build says so, with the crates and the time taken, so the agent knows why a call was slow and that nothing in the project changed.

Costs and limits

The first lookup in a crate builds its docs. A small crate takes seconds. A facade such as bevy re-exports around 60 crates, and the first lookup through it took 60 to 170 seconds on a Ryzen 5 5600, depending on whether the dependencies were already compiled.

After that, everything comes from a cache on disk that new sessions reuse. On the same machine, with bevy's docs built, a lookup through bevy::prelude takes 45 ms from the shell and under 10 ms from a running server, and a search across all of bevy takes 2 to 12 ms. The server held 121 MB after those calls.

| Not covered | Why | |---|---| | std, core, alloc | Only the project's dependencies are built. | | Trait impls in downstream crates | A trait's implementors come from its own crate and that crate's dependencies. | | Caching path dependencies across sessions | They have no version to key the cache on, so each server process rebuilds them once. |

docs/how-it-works.md covers the build pipeline, cache layout and re-export resolution.

License

Apache-2.0. See LICENSE.

Related Skills

View on GitHub
GitHub Stars3
CategoryAI
Updated4d ago
Forks0

Languages

Rust

Trust signals

92/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 low