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 (layered: project → domain pack → manifest-inline → owned → 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.12
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.12-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| mcp_methods-0.4.12-cp310-abi3-manylinux_2_39_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.39+ x86-64 | Details |
| mcp_methods-0.4.12-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
Total release size: 24.8 MB
Release files / mcp_methods-0.4.12-cp310-abi3-win_amd64.whl
| Download URL | mcp_methods-0.4.12-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 7.7 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
4a72ac85390f931c8661386456e05773deb84015aceac45cbbe8ba98121fc823
|
|
BLAKE2b-256 checksum How to use checksums |
be228fcb06ade7d1bee3514823d278cebf32f5167540a5b8709a38675a0dcd26
|
| 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.12-cp310-abi3-manylinux_2_39_x86_64.whl
| Download URL | mcp_methods-0.4.12-cp310-abi3-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 9.0 MB |
| Tags | CPython 3.10 Linux glibc 2.39+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
f10d81c89650eb9ce04938c42dfb9b8ca22b152012ca1ab09f3e762f746dabb4
|
|
BLAKE2b-256 checksum How to use checksums |
667eb5f7212997e9a8b90044475ab4408da8e99d43afa6cd680dee8494825ab5
|
| 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.12-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | mcp_methods-0.4.12-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 8.0 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
8a0ab0119048dc4b4cfd1f4451e226df310f6b552d43bd7fc10cf82790b194ad
|
|
BLAKE2b-256 checksum How to use checksums |
9e52fde32225a521ac480071005574d648446387646273ce99f9fc78477c2d6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|