mcpField
O
osmcp

osmcp

ローカル
github.com/KrushnaVardhanReddy開発ツール011 週間前に更新

osmcp について

osmcpは、ポリシーエンジンで制御された型付きのファイルシステム、Git、テキスト処理ツールをAIエージェントに提供するMCPサーバーです。パスやツールの制限、変更制御、出力上限、監査ログが必要な環境を対象としています。

主な機能

  1. 01ファイルシステム検索・確認ツール
  2. 02Gitの状態・差分・履歴ツール
  3. 03テキスト変換ユーティリティ
  4. 04ポリシーによるパスとツールの許可リスト
  5. 05変更制御と実行上限
  6. 06追記専用の呼び出し監査ログ

活用シーン

  1. 01エージェントの操作範囲をプロジェクト内に限定する
  2. 02指定したツールだけを公開する
  3. 03ファイル確認を許可し、変更を禁止する
  4. 04エージェントのツール呼び出しを監査する

MCP 対応

osmcpはMCP JSON-RPC over stdioでMCPクライアントと通信します。ポリシーエンジンが公開・実行可能なツールを制御し、ファイルシステムの境界と変更ルールを適用します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"krushnavardhanreddy-osmcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/krushnavardhanreddy/osmcp:latest"
]
}
}
}
起動コマンドdocker run -i --rm ghcr.io/krushnavardhanreddy/osmcp:latest

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocighcr.io/krushnavardhanreddy/osmcp:latest

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

osmcp — AI エージェント向け OS 機能

Model Context Protocol(MCP)を介して、AI エージェントに型安全でポリシー制御された OS 機能レイヤーを提供します。

osmcp は、安全性を考慮して厳選されたファイルシステム、git、テキスト処理のツール群を AI エージェントに提供します。すべてのツールは、パス境界、ツールの許可リスト、出力制限、変更制御、不変の監査証跡を適用する厳格なポリシーエンジンによって管理されます。

📖 osmcp の理念、安全境界、設計上の判断について詳しく知りたい方は、包括的なアーキテクチャおよび設計ドキュメントをご覧ください。

LiteLLM Compatible Smithery Verified

機能

カテゴリツールフェーズ
🔍 検索grep、find1
📁 ファイル検査ls、cat、stat、wc、head、tail1
🌳 ファイルシステムtree、du1
🔀 Git インテリジェンスgit_status、git_diff、git_log1
🔧 変換jq、sed、diff1
✍️ ファイル変更write_file、append_file、mkdir、rm、mv、cp、patch2
🚀 Git の変更git_add、git_commit、git_checkout、git_branch、git_pull、git_push2

アーキテクチャ

AI Agent (Claude, GPT, etc.)
    │  MCP JSON-RPC (stdio)
    ▼
osmcp binary
    ├── Policy Engine      ← enforces allowed_root, allowed_tools, limits
    ├── Audit Logger       ← append-only NDJSON log of every invocation
    ├── Tool Registry      ← self-registering tools via RegisterMCP()
    └── Envelope Builder   ← typed {ok, data, error, meta} responses

デモ

osmcp デモ操作 TOML ポリシーエンジンによって安全な範囲に制限された osmcp を介して、Claude Desktop がコードを安全に編集するデモです。

クイックスタート

1. Homebrew でインストール
brew tap KrushnaVardhanReddy/tap
brew install osmcp

または、ソースからビルドします。

make build
# Binary: bin/osmcp
2. ポリシーを設定
# policy.toml
[policy]
allowed_root   = "/home/user/myproject"
allowed_tools  = ["grep", "ls", "cat", "git_status", "git_log"]
allow_mutation = false

[limits]
timeout_ms       = 5000
max_output_bytes = 1048576
max_matches      = 100

[audit]
destination = "stderr"   # or "file"
path        = "/var/log/osmcp-audit.ndjson"
3. 実行
bin/osmcp --policy policy.toml

バイナリは、MCP JSON-RPC を使用して stdio 経由で通信します。MCP 互換のクライアントを接続してください。

クライアントとの連携

Claude Desktop

次の内容を claude_desktop_config.json に追加してください。

{
  "mcpServers": {
    "osmcp": {
      "command": "osmcp",
      "args": ["--policy", "/absolute/path/to/policy.toml"]
    }
  }
}
Smithery(npx)

Smithery を使って、Claude Desktop 用に osmcp を自動インストールするには:

npx @smithery/cli install osmcp
LiteLLM

LiteLLM MCP Gateway を使用して、osmcp をエンタープライズ LLM プロキシに統合します。

5. テスト
make test     # unit tests
make e2e      # end-to-end tests against real binary
make lint     # golangci-lint

ポリシーセキュリティモデル

  • allowed_root — すべてのファイルシステムパスがこのルート内にあるか検証されます。ルート外への移動は POLICY_DENIED でブロックされます。
  • allowed_tools — このリストに含まれるツールのみが MCP クライアントに表示されます。リストにないツールは tools/list に表示されません。
  • allow_mutation — false の場合、変更を行うツール(書き込み、削除、git commit)はすべてブロックされます。
  • 制限 — 呼び出しごとのタイムアウト、出力バイト数の上限、マッチ数の上限により、処理が際限なく実行されるのを防ぎます。

エンベロープ応答形式

すべてのツールの応答は、一貫した型付きエンベロープに従います。

{
  "ok": true,
  "tool": "grep",
  "data": { ... },
  "error": null,
  "meta": {
    "execution_time_ms": 12,
    "truncated": false
  }
}

ライセンス

MIT

謝辞

osmcp は、基盤として使用している素晴らしいオープンソースライブラリなしには実現できませんでした。

  • mcp-go:Model Context Protocol の中核となる SDK。
  • go-git:純粋な Go による git 操作。
  • gojq:純粋な Go による JSON 処理。
  • go-gitdiff:パッチの解析と適用。
  • grep-go:正規表現検索。
  • toml:設定の解析。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。