mcp-methods
Shared Rust-powered utilities for Model Context Protocol servers. Pip-installable Python library AND a native Rust crate AND a generic CLI binary — three distribution shapes, one set of primitives.
Fast file search (ripgrep-backed), GitHub integration with smart compaction, text utilities, and an rmcp-backed MCP server framework with YAML-manifest configuration. The common building blocks needed when writing MCP tool servers.
The Rust library is the source of truth; the Python wheel is a thin pyo3 binding over it. Rust consumers see zero pyo3 in their dep tree.
Install
Python — pip install
pip install mcp-methods
from mcp_methods import ElementCache, ripgrep, list_dir, github_discussions, read_file
The wheel ships the mcp-server CLI on PATH alongside the library — which mcp-server should resolve immediately. Single abi3 wheel per OS; works on Python 3.10 through 3.13 without reinstall.
Rust library — cargo add
[dependencies]
mcp-methods = "0.4"
use mcp_methods::cache::ElementCache;
use mcp_methods::{github, files, grep, list_dir, compact, html};
use mcp_methods::server::{McpServer, ServerOptions, Manifest}; // with default `server` feature
Zero pyo3 in the dep tree. The server feature (default-on) adds the rmcp-backed framework; disable with default-features = false for the bare primitives.
The 0.4 line requires Rust 1.88 or newer.
For pre-release coordination — pinning against a specific commit while the framework is iterating quickly — depend on a git rev:
mcp-methods = { git = "https://github.com/kkollsga/mcp-methods.git", rev = "<short SHA>", features = ["server"] }
The downstream kglite-mcp-server uses this pattern to stay locked to the exact framework rev its integration tests pass against.
CLI — cargo install (alternative path)
The CLI ships in the pip wheel by default. If you'd rather skip Python:
cargo install --git https://github.com/kkollsga/mcp-methods mcp-server
Not on crates.io — mcp-server is unpublished on purpose. The Rust library on crates.io is the published surface; the binary ships via the wheel and via git.
Documentation
Full docs at mcp-methods.readthedocs.io (Sphinx + Read the Docs, structured along Diátaxis lines):
- Getting Started — 15-minute walkthrough from pip install to a running server
- Core Concepts — manifest, operating modes, trust gates, downstream-binary pattern
- Guides — writing a manifest, downstream binaries, trust gates, python bindings, watch + workspace modes
- Reference — manifest schema, Python API, Rust API
- Explanation — three-crate architecture, advisory-trust pattern, distribution shape
Rust API rustdoc: docs.rs/mcp-methods.
What's included
| Primitive | Purpose |
|---|---|
list_dir |
Tree-formatted directory listing with depth, glob, .gitignore, annotation |
ripgrep_files, ripgrep, ripgrep_lines |
Ripgrep-powered search (in-process, no subprocess) |
read_file |
Safe file reading with path traversal protection |
github_discussions, git_api |
GitHub issue/PR fetching with smart compaction, REST wrapper |
ElementCache |
Drill-down cache for collapsed elements in GitHub discussions |
html_to_text, compact_text, collapse_code_blocks |
Text utilities |
extract_github_refs, detect_git_repo, validate_repo |
Git/GitHub helpers |
mcp_methods.fastmcp |
Composable tool registrations for FastMCP servers |
SkillRegistry, Skill, register_skills_as_prompts |
Operator-authored methodology as MCP prompts (three-layer: project → domain pack → bundled defaults). See crates/mcp-methods/dev-documentation/skills-aware-mcp.md for the design doc. |
Plus the server framework in mcp_methods::server::*: McpServer, ServerOptions, Manifest, Workspace, watch_dir, load_env_walk, serve_prompts. See the Rust API reference.
License
MIT.
Metadata
Release files for mcp-methods 0.4.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_methods-0.4.9-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| mcp_methods-0.4.9-cp310-abi3-manylinux_2_39_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.39+ x86-64 | Details |
| mcp_methods-0.4.9-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
Total release size: 24.3 MB
Release files / mcp_methods-0.4.9-cp310-abi3-win_amd64.whl
| Download URL | mcp_methods-0.4.9-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 7.6 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
1bc6612b3473737ba80a8f69b40526b775f189887fceb3d3612ba6bbce5a2499
|
|
BLAKE2b-256 checksum How to use checksums |
412ecd513a22a47715209637ec2830a75460765407759c877d71c8703e3608b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / mcp_methods-0.4.9-cp310-abi3-manylinux_2_39_x86_64.whl
| Download URL | mcp_methods-0.4.9-cp310-abi3-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 8.8 MB |
| Tags | CPython 3.10 Linux glibc 2.39+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
3111abadd717c5ec54058667d81e4a21144147e29da3b77742ea082e95cd243c
|
|
BLAKE2b-256 checksum How to use checksums |
baf20b05e2a5ed10b888eefba0c7954623cf15eb4b83be03a1c100250da94776
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / mcp_methods-0.4.9-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | mcp_methods-0.4.9-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 7.9 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
03aa4f4086c6ef5ae2d997d0d9e8cf243f16e3f93ef39eea003fc998fc17417f
|
|
BLAKE2b-256 checksum How to use checksums |
78142e9d81a7715575766f17baee5075221a08d666a3d8652ba56ad95f19a19f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|