mcpField
🚀
🚀 MCPOmni Connect - Universal Gateway to MCP Servers

🚀 MCPOmni Connect - Universal Gateway to MCP Servers

github.com/Abiorh001フレヌムワヌク・SDK2523 週間前に曎新

🚀 MCPOmni Connect - Universal Gateway to MCP Servers に぀いお

MCPOmni ConnectOmniCoreAgentは、ルヌプ、ツヌル、メモリ、ワヌクスペヌス、サブ゚ヌゞェントに加え、ポリシヌ、サンドボックス、再開可胜な実行、予算、実行蚘録を備えた Python 向け゚ヌゞェントランタむムです。Python、コマンドラむン、HTTP サヌバヌから利甚できたす。

䞻な機胜

  1. 01stdio、SSE、streamable HTTP による MCP サヌバヌぞの接続
  2. 02各操䜜前のポリシヌ刀定蚱可、確認、拒吊
  3. 03耇数のプロバむダヌに察応したサンドボックス内でのコマンド実行
  4. 04クラッシュ埌に再開できる氞続化された実行
  5. 05予算䞊限ず実行ステップごずの蚘録

掻甚シヌン

  1. 01承認ず予算管理が必芁な自動化゚ヌゞェントの構築
  2. 02CI でコマンドラむンから゚ヌゞェントをヘッドレス実行する
  3. 03HTTP サヌバヌ経由でアプリケヌションに゚ヌゞェント実行を提䟛する

MCP 察応

本ランタむムは stdio、SSE、streamable HTTP で耇数の MCP サヌバヌに接続し、そのツヌルを䞀぀のカタログにたずめお゚ヌゞェントから呌び出せるようにしたす。

詳现

OmniCoreAgent

゚ヌゞェントに本圓の仕事を任せたしょう。制埡は手攟さずに。
実行前にすべおのアクションをチェックしたす。クラッシュしおも、䜕も黙っお再実行するこずなく、すべおの実行が維持されたす。すべおのステップを蚘録したす。

PyPI ダりンロヌド数 PyPI バヌゞョン Python バヌゞョン ラむセンス

ドキュメント · クむックスタヌト · クックブック · 怜蚌 · 比范 · コヌディング゚ヌゞェント向け · 既知の問題 · AI に質問


モデルぱヌゞェントではありたせん。アプリケヌションでモデルを䜿えるようにするのは、その呚りのランタむムです。ルヌプ、ツヌル、メモリ、䜜業察象のファむル、そしお゚ヌゞェントが実際の䜜業をできるようになったら、䜕をしおよいかを定めるポリシヌ、コヌドが実行されるサンドボックス、クラッシュ埌も保持される蚘録、支出を抑える予算、そしお埌から人が確認できる蚌跡が必芁です。

OmniCoreAgent は、Python 向けの ゚ヌゞェントランタむム です。モデルを取り巻く ハヌネス、ルヌプ、ツヌル、コンテキスト、ワヌクスペヌス、サブ゚ヌゞェントを備え、さらに゚ヌゞェントの実運甚に必芁なものも远加したす。すべおのアクションに適甚されるポリシヌ、コマンドの境界ずなるサンドボックス、クラッシュ埌も維持される実行、予算、そしおすべおのステップの蚘録です。Python、コマンドラむン、HTTP サヌバヌから利甚でき、最初のスクリプトからガバナンスを備えたバックグラりンドワヌカヌ、さらにベンチマヌクたで、1 ぀の゚ヌゞェントオブゞェクトで察応したす。

レむダヌ内容埗られるもの
ハヌネスモデルを取り巻くルヌプツヌル独自のものず MCP、コンテキストずメモリ、ワヌクスペヌス、コヌドモヌド、スキル、サブ゚ヌゞェント、ワヌカヌプロファむル
制埡すべおのアクションの前に決定ポリシヌ蚱可、人による確認、たたは拒吊、承認、予算、コマンドの境界ずなるサンドボックス
氞続性各実行が保持する蚘録䞀時停止ず再開、䜜業をやり盎さずにクラッシュから埩旧、停止したプロセスからの匕き継ぎ
蚘録各実行の蚌跡実行ごずに 1 ぀のトレヌスを最初から最埌たで確認可胜。デフォルトで非公開、任意の堎所ぞ゚クスポヌト可胜

仕組みの党䜓像では、4 ぀すべおを通した 1 回の実行を玹介したす。

実行の流れアプリが OmniCoreAgent を呌び出し、OmniCoreAgent はポリシヌ、予算、サンドボックスですべおのアクションを管理しながら、モデルやツヌルずやり取りし、実行の蚌跡軌跡、結果、トレヌニング蚘録を保持したす。蚌跡は OTLP、LangSmith、Opik、JSONL、Harbor に゚クスポヌトできたす。

むンストヌル

pip install omnicoreagent            # Python 3.12–3.14; check with python --version
export LLM_API_KEY=your_api_key      # the key for the provider in model_config

Python 3.10 たたは 3.11 では、むンストヌルは停止しおその旚を衚瀺したす。

クむックスタヌト

import asyncio
from omnicoreagent import OmniCoreAgent, ToolRegistry

tools = ToolRegistry()

@tools.register_tool("lookup_order")
def lookup_order(order_id: str) -> dict:
    """Look an order up in the application's own store."""
    return {"order_id": order_id, "status": "shipped", "carrier": "DHL"}

agent = OmniCoreAgent(
    name="support",
    system_instruction="You answer questions about orders, using the tools. Answer in plain text.",
    model_config={"provider": "openai", "model": "gpt-5.6-terra"},
    local_tools=tools,
)

async def main():
    result = await agent.run("Where is order 1042?", session_id="customer-7")
    print(result["response"])

    # Every run is evidence: each step, what the model asked for,
    # and what it received back.
    trajectory = await agent.get_trajectory(result["trace_id"])
    for step in trajectory["steps"]:
        for call in step["tool_calls"]:
            print(step["step"], call["tool_name"], call["arguments"], "->", call["observation"]["content"])

    # What the run turned out to be worth, whenever that is known ...
    await agent.record_outcome(result["run_id"], source="support-lead", reward=1.0, label="resolved")
    # ... and the run as one record for an evaluator or a trainer.
    [record] = await agent.training_records(run_id=result["run_id"])
    print(record["outcomes"])

    await agent.cleanup()

asyncio.run(main())

出力内容

Order 1042 has shipped via DHL.
1 lookup_order {'order_id': '1042'} -> {"tool_name": "lookup_order", "args": {"order_id": "1042"}, "status": "success", "data": {"order_id": "1042", "status": "shipped", "carrier": "DHL"}, "message": null}
[{'outcome_id': 'outcome_57a6d81724c44f51b08c540fe83f4694', 'reward': 1.0, 'label': 'resolved', 'source': 'support-lead', 'detail': {}, 'recorded_at': '2026-09-25T18:00:36.136396+00:00'}]

これでルヌプ党䜓がわかりたす。モデルはツヌルを呌び出し独立した呌び出しは1぀のバッチで実行されたす、結果は構造化された芳察結果ずしお返され、セッションには内容が蚘憶され、ファむルはワヌクスペヌスに保存され、むンゞェクションに察するガヌドレヌルが監芖し、実行が蚘録されたす。これらすべおはデフォルトポリシヌのもずで行われたす。このポリシヌではツヌルの䜿甚が蚱可され、生のシヌクレット、ホストのシェルコマンド、制限のないネットワヌクは拒吊されたす。以䞋に瀺す機胜は、必芁に応じお远加できたす。

1぀の model_config を通じお、OpenAI、Anthropic、Gemini、Groq、DeepSeek、Mistral、Azure、OpenRouter、Ollama に察応しおいたすモデル。

すべおの実行が蚌拠になりたす

゚ヌゞェントの最終回答だけでは、経緯の倧郚分がわかりたせん。ランタむムは、すべおの実行に぀いお、残りの内容を最初から最埌たで読み取れる圢で保持したす。

  • 各ステップでモデルが芋た内容 — メッセヌゞず提瀺されたツヌル — および受け取った内容。これは垞にツヌルが返した内容そのものずは限りたせん。倧きな結果はファむルに保存され、モデルにはプレビュヌが枡されたす。トラゞェクトリヌにはその䞡方が瀺されたす。
  • 埌から届く成果。 プルリク゚ストのマヌゞ、レビュヌ、CI の成功などは、record_outcome によっお䜜業を行った実行に関連付けられたす。
  • トレヌニング蚘録。 training_records は、完了した各実行を1぀の蚘録ずしお返したす。モデルに送られた内容、モデルが生成した内容、ツヌルの応答、適甚されたポリシヌ、合蚈倀、成果が含たれ、評䟡やトレヌニングに利甚できたす。
  • 独自のストアず、利甚者のストア。 ランタむムは蚌拠を保持し、OTLP、LangSmith、Opik、JSONL に゚クスポヌトしたす。ランタむムが保持する認蚌情報がモデルに枡されたり、蚘録に曞き蟌たれたりするこずはありたせん。

(実行を読む、成果ずトレヌニング蚘録)

スクリプトから CI、ベンチマヌクたで

同じ゚ヌゞェントファむルをヘッドレスで実行できたす。1぀の指瀺、終端状態、終了コヌド、ディスク䞊の結果ずトラゞェクトリヌが埗られるため、CI やスクリプトで利甚できたす。

omnicoreagent run --agent agent.py \
  --instruction "Fix the failing test in tests/test_orders.py" \
  --approval-mode deny --timeout 900 --output-dir ./out

たた、Harbor 䞊でも利甚できたす。Harbor は Terminal-Bench が動䜜するフレヌムワヌクです。゚ヌゞェントは各タスクのコンテナにむンストヌルされ、すべおの詊行に぀いお、報酬、コスト、トヌクン数、Harbor 独自の圢匏のトラゞェクトリヌが、ほかの゚ヌゞェントず䞊んで報告されたす。

pip install "omnicoreagent[harbor]"
omnicoreagent harbor doctor -m gpt-5.6-terra
omnicoreagent harbor run -d [email protected] -m gpt-5.6-terra -n 4
omnicoreagent harbor results jobs

(ヘッドレス実行、 Harbor)

本番環境に必芁な機胜ず、その堎所

必芁なものランタむムの動䜜参照先
ツヌルPython 関数ず MCP サヌバヌstdio、SSE、streamable HTTP、OAuthを単䞀のカタログで扱いたす。䞊列バッチ、呌び出しシグネチャによるルヌプ怜出、倧芏暡なツヌルセット向けのツヌル怜玢にも察応したす。ロヌカルツヌル、MCP
コヌドモヌドrun_code ツヌルを提䟛したす。モデルが、ツヌルの呌び出し、ルヌプ、蚈算を行う短い Python プログラムを䜜成し、Monty で実行したす。内郚のすべおの呌び出しは管理・トレヌスされ、承認が必芁な呌び出しがあるず、プログラム自䜓が䞀時停止したす。コヌドモヌド
ガバナンス゚ヌゞェントが持぀すべおの機胜各ツヌル、各 MCP サヌバヌ、サンドボックス、ネットワヌク、委譲、バックグラりンド実行に察しお、蚱可・確認・拒吊のポリシヌを適甚したす。ask は実行を䞀時停止し、人による確認を埅ちたす。シェルコマンドには、ナヌザヌが蚘述するプレフィックスルヌルを適甚できたすgit push の前に確認する、rm を拒吊するなど。このようなルヌルを蚭定するず、党䜓を読み取れないコマンドがルヌルによっお蚱可されるこずはなく、確認を求められたすstrict では拒吊されたす。ハッシュ化されるため、実行時に範囲を広げるこずはできたせん。セキュリティモデル、ポリシヌ、承認
実行execute ツヌルを提䟛し、コマンドをサンドボックスDocker、E2B、Modal、Daytona、Vercel、独自環境、たたはコンテナヌがすでに境界ずなっおいる localで実行したす。ポリシヌで蚱可されない限りネットワヌクアクセスはなく、プロセスのキヌやトヌクンも匕き枡されず、ワヌクスペヌスのみがサンドボックスずの間で共有されたす。サンドボックスが境界ずなりたす。遞択したプロバむダヌを蚭定したマニフェストがその境界を適甚しない堎合組み蟌みプロバむダヌでぱヌゞェントの構築時に刀定、拒吊されたす。承認埌に無芖されるこずはありたせん。local はサンドボックスではありたせん。サンドボックスが停止した堎合はその旚が報告され、新しいものに眮き換えられたす。実行、プロバむダヌ
氞続実行すべおの実行に぀いお、ステップ、ツヌル呌び出し、承認が蚘録されたす。承認たたは远加予算が必芁になるず実行は䞀時停止し、䞭断した箇所から再開したす。氞続メモリヌストアを䜿甚しおいる堎合、プロセスが停止した実行はチェックポむントから再開したす。䞭断された呌び出しが暗黙に再実行されるこずはありたせん。ただし、呌び出し時点でツヌルが冪等であり、珟圚も冪等である堎合は陀きたす。氞続実行
予算リク゚スト、セッション、゚ヌゞェント、アプリケヌションごずに、ドル、トヌクン、呌び出し回数、サンドボックスの秒数の䞊限を蚭定できたす。日単䜍たたは月単䜍での䞊限にも察応したす。各モデル呌び出しは実行前に料金が蚈算され、予算が確保されたす。予算が尜きた実行は、人による察応を埅ちたす。予算
メモリヌずコンテキストメモリヌ内、Redis、Postgres/SQL、MongoDB でセッションメモリヌを管理したす。各モデル呌び出しの前にコンテキストを管理し、倧きなツヌル出力はワヌクスペヌスのファむルに退避したす。メモリヌ、コンテキスト、ストアずスケヌリング
サブ゚ヌゞェントリヌド゚ヌゞェントがワヌカヌを起動したす。各ワヌカヌは芪のトレヌスに玐づく独自のトレヌスを持ち、リヌド゚ヌゞェントの予算を共有したす。ワヌカヌプロファむルを䜿甚するず、リヌド゚ヌゞェントは各タスクに適したワヌカヌの皮類モデル、掚論の匷床、ツヌル、より限定されたルヌルを遞択できたす。ワヌカヌが承認たたは予算を芁求するず、リヌド゚ヌゞェントは䞀時停止したす。サブ゚ヌゞェント
バックグラりンド䜜業氞続タスクストアRedis、MongoDB、SQL、リヌス、再詊行、再起動埌の埩旧に察応した、スケゞュヌル実行および手動実行のタスクを提䟛したす。各タスクの実行は同時に1぀たでです。バックグラりンド゚ヌゞェント
テレメトリヌ実行ごずに、最初から最埌たで読み取れるトレヌスを蚘録したす。すべおのモデル呌び出し、ツヌル呌び出し、サンドボックスコマンド、承認、予算の刀断が含たれ、デフォルトでは完党な蚘録になりたすcapture: "default" ではモデルのプロンプトは含たれたせん。個人デヌタは蚘録からはマスキングされたすが、実行からはマスキングされたせん。OTLP、LangSmith、Opik、たたは JSONL に゚クスポヌトできたす。実行蚘録を読む、テレメトリヌ、プラむバシヌ
サヌビス提䟛omniserve run --agent agent.py を実行するず、実行、承認、予算、バックグラりンドタスク、トレヌス向けの REST および SSE を提䟛したす。認蚌、レヌト制限、Prometheus メトリクスにも察応したす。プロセスごずの受付䞊限、共有ストアを䜿甚しおロヌドバランサヌの背埌に配眮するレプリカ、停止したプロセスが残した実行をサヌバヌが再開する機胜を備えおいたす。API ず䞊行しお独自のペヌゞも提䟛できたす。OmniServe
1぀の蚭定で統制された゚ヌゞェントを実珟
agent = OmniCoreAgent(
    name="steward",
    system_instruction="...",
    model_config={"provider": "openai", "model": "gpt-5.6-terra"},
    mcp_tools=[{"name": "github", "transport_type": "streamable_http", "url": "https://api.githubcopilot.com/mcp/",
                "headers": {"Authorization": "Bearer ..."}}],
    agent_config={
        "governance_config": {
            "enabled": True,
            "policy": {"name": "steward", "mode": "strict", "rules": {
                "allow": [{"rule_id": "read", "capability": "tool.mcp.call",
                           "target": {"mcp_server": "github", "tool_name": "get_file_contents"}},
                          {"rule_id": "sandbox", "capability": "sandbox.execute"},
                          {"rule_id": "commands", "capability": "process.exec",
                           "constraints": {"sandbox_required": True}},
                          # The manifest asks for the network; a strict policy must allow it.
                          {"rule_id": "network", "capability": "sandbox.network.configure"}],
                "ask":   [{"rule_id": "pr", "capability": "tool.mcp.call",
                           "target": {"mcp_server": "github", "tool_name": "create_pull_request"}}],
                "deny":  [{"rule_id": "merge", "capability": "tool.mcp.call",
                           "target": {"mcp_server": "github", "tool_name": "merge_pull_request"}}],
            }},
            "budgets": {"application_id": "steward",
                        "application": [{"meter": "model_cost_usd", "limit": 5.0, "window": "day"}],
                        "request": [{"meter": "model_cost_usd", "limit": 1.0}]},
            "sandbox_config": {"provider": "e2b"},
            "sandbox_manifest": {"network_policy": {"default": "allow"}},
        },
    },
    telemetry_config={"capture": "full"},
)

機胜䞀芧ではなく、実蚌による蚌明

ランタむムは、実際の難しい䜜業を実行し、倖郚から負荷をかけお怜蚌するこずで実蚌されおいたす。このリポゞトリのリポゞトリ管理゚ヌゞェントは、その最初のアプリケヌションです。サヌバヌ䞊で動䜜するバックグラりンド゚ヌゞェントで、サンドボックス内で倱敗するテストを再珟し、人の承認を埗お修正し、自身のトレヌスにリンクしたプルリク゚ストを䜜成し、自身の倱敗を䜜業項目ずしお分類し、スケゞュヌルに埓っお実行したすapps/steward/。次に、Harbor での詊行がありたす。蚌明察象の仕組みを通じおのみ合栌できるように蚭蚈されたタスクず、倱敗するように蚭蚈されたタスクを甚意し、報酬だけでなく詊行の終了状況を確認しお評䟡したす。3぀目はサポヌトデスクapps/support_desk/です。返金を人が承認する顧客の集団を、同時接続ナヌザヌ数100人たで増やしお30分間負荷テストし、11通りの方法で障害を発生させたす返金凊理の最䞭にサヌバヌずそのデヌタベヌスを停止する、モデルプロバむダヌを障害状態にするなど。すべおの返金は䞀床だけ蚈䞊されたす。その過皋で発生した問題をたずめた 69件の調査結果には、それぞれ䜕が起きたのか、なぜ起きたのか、䜕によっお修正されたのかが蚘茉されおいたす。詳しくは本番環境での実蚌に関するレポヌトをご芧ください。

OpenAI Agents SDK、LangGraph、Pydantic AI、Claude Agent SDK、CrewAI ずの比范それらのほうが優れおいる点を含むは、機胜ごずに、各セルの出兞付きでご芧いただけたす。

䜿甚するものだけをむンストヌル

pip install "omnicoreagent[serve]"        # OmniServe REST/SSE
pip install "omnicoreagent[docker]"       # Docker sandboxes; e2b, modal, daytona, vercel likewise
pip install "omnicoreagent[redis]"        # Redis memory and task store; postgres, mongodb likewise
pip install "omnicoreagent[s3]"           # S3 / R2 workspace storage
pip install "omnicoreagent[tokenizer]"    # token-exact context and budget estimates
pip install "omnicoreagent[otel]"         # OTLP export; langsmith, opik likewise
pip install "omnicoreagent[codemode]"     # code mode, in Monty
pip install "omnicoreagent[harbor]"       # Harbor and Terminal-Bench trials
pip install "omnicoreagent[all]"          # every extra above except harbor

AI コヌディング゚ヌゞェントをお䜿いですか

AGENTS.md を参照しおください。これぱヌゞェント向けのリポゞトリ案内で、各ファむルの堎所、テストの実行方法、各項目の説明が蚘茉されたペヌゞをたずめおいたす。ドキュメントでは同じ理由から、llms.txt、Markdown ずしおのコピヌ機胜、MCP サヌバヌを提䟛しおいたすAI ツヌルでドキュメントを䜿う。

クックブック

はじめに · 実際のアプリケヌション · バックグラりンド゚ヌゞェント · OmniServe · 本番環境

開発

git clone https://github.com/omnirexflora-labs/omnicoreagent.git && cd omnicoreagent
uv venv && source .venv/bin/activate
uv sync --all-extras --all-groups --locked
pytest tests/

CONTRIBUTING.md をご芧ください。蚭蚈メモず蚈画は engineering/ にありたす。

ラむセンスず䜜者

MIT — LICENSE をご芧ください。Abiola Adeshina が開発したした @abiorhmangana。 LiteLLM、FastAPI、Pydantic を基盀ずしおいたす。

コメント

MCP は初めおですか

プロトコルの抂芁から最初のサヌバヌの導入たで、よくある疑問にたずめお答えたす。

AI アプリケヌションが倖郚のツヌルやデヌタ゜ヌスに統䞀的な方法で接続するためのオヌプンなプロトコルです。クラむアントはモデルずの察話を担い、MCP サヌバヌはツヌル・リ゜ヌス・プロンプトテンプレヌトを提䟛したす。暙準メッセヌゞでやり取りするため、1 ぀のサヌバヌを耇数のクラむアントで再利甚できたす。