mavlink-mcp
mavlink-mcp
mavlink-mcp は、オープンスタンダード上に構築された ベンダーニュートラルなUAV機能レイヤー + Model Context Protocol サーバーです。これは、AIエージェント(Claude Desktop、Cursor、VS Code、その他のMCPクライアント)を、MAVSDK(BSD-3-Clause)を通じて MAVLink を話すドローン(PX4 SITL、ArduPilot SITL、Pixhawkクラスのオートパイロット)に接続します。プロトコルメッセージをラップする代わりに、1つのクリーンなAPIの背後に 8つの飛行機能(テレメトリー、フライトモード、アーム/ディスアーム、離陸、着陸、移動、ミッション、発進地点への帰還)を公開し、デフォルトで安全ガードレールが有効になっています。
これは rosbridge-mcp(AIエージェント ↔ ROS 2 ロボット)の姉妹プロジェクトであり、その哲学を共有しています:オープンプロトコルのみ、デフォルトで読み取り専用のガードレール、シミュレーション優先、ゼロテレメトリー、MITライセンス。
名称に関する注意: 「mavlink-mcp」は暫定的な作業名です。「MAVLink」はDronecode Foundationの商標です。プロジェクト名は、公開リリース前に商標ポリシーのレビューを経て調整される可能性があります。
安全に関する免責事項: このプロジェクトはシミュレーションおよび研究用に構築されています。実際の航空機を飛行させる場合は、ご自身の責任とリスクで行ってください。また、現地の航空法(登録、飛行許可、パイロットライセンス)の遵守も含まれます。SECURITY.md を参照してください。
なぜ機能レイヤーであって、別のSDKではないのか?
AIエージェントにとって、機能は400のSDK関数よりも優れている。 エージェントは
get_capabilities(「このドローンは何ができるか?」)を要求し、物理的なアクションの小さな語彙を取得し、それを基に計画を立てます。モデル側でMAVLinkの知識は不要です。設計上、ベンダーニュートラル。 機能は、オープンな仕様から物理量(度、メートル、ボルト)で定義されており、プロプライエタリなSDKの表面からコピーされたものではありません。MAVSDKアダプターは1つの実装であり、将来のROS 2アダプター(rosbridge-mcpを再利用)は同じインターフェースを実装します。
ガードレールはAPIの一部であり、後付けではない。 読み取り専用モードがデフォルトであり、アームと離陸には明示的なオペレーター承認の確認が必要であり、コマンドされたすべての位置は、オートパイロットに到達する前に、高度制限とソフトジオフェンスに対してチェックされます。
Related MCP server: ArduPilot MCP Server Sandbox
アーキテクチャ
+--------------------+ stdio (MCP) +----------------------------------+ MAVLink (UDP) +------------------+
| AI client | <-----------> | mavlink-mcp | <-------------> | PX4 / ArduPilot |
| (Claude, Cursor, | | MCP server | via | SITL or real FC |
| VS Code, ...) | | └─ capability layer + policy | MAVSDK | (Pixhawk-class) |
+--------------------+ | └─ MAVSDK adapter | (BSD-3) +------------------+
+----------------------------------+
Python scripts use the same capability layer directly (mavlink_mcp.Drone).機能レイヤー(Drone)は、すべてのポリシー(読み取り専用、確認、高度、ジオフェンス)を所有します。アダプター(MavsdkAdapter)は、承認された操作のみをMAVLinkに変換します。これは mavsdk をインポートする唯一のモジュールです。新しいバックエンドは同じ DroneAdapter インターフェースを実装し、両方の表面(MCPツール + Pythonライブラリ)とすべてのガードレールを無料で継承します。
クイックスタート(60秒)
pip install git+https://github.com/hieutachi/mavlink-mcp.gitPX4 SITLを起動し(docs/simulator-quickstart.md を参照 — Dockerコマンド1つ)、次にMCPクライアント設定に追加します:
{
"mcpServers": {
"mavlink": {
"command": "mavlink-mcp",
"env": { "MAVLINK_MCP_READONLY": "true" }
}
}
}次にエージェントに尋ねてみてください:「このドローンは何ができて、今どこにいるの?」
飛行する準備ができたら(シミュレーター内で!)、MAVLINK_MCP_READONLY を "false" に設定します。
機能とツール
8つの機能をカバーする12のツール。すべてのツールはJSONを返します。エラーは、発生する代わりに {"error": "...", "guardrail": true} として返されるため、エージェントはそれを読み取って対応できます。
ツール | 機能 | 説明 | 変更を伴う? |
| — | 車両がサポートするもの + アクティブなガードレール | いいえ |
| テレメトリー | 位置、姿勢、バッテリー、GPS、モード、アーム状態、飛行中 | いいえ |
| フライトモード | 現在のフライトモード(HOLD、MISSION、RTL、...) | いいえ |
| — | エンドポイント、接続状態、ガードレール設定 | いいえ |
| アーム/ディスアーム | モーターを回転させる | はい — |
| アーム/ディスアーム | モーターを停止させる(地上で) | はい |
| 離陸 | 目標高度まで上昇する | はい — |
| 着陸 | 現在位置に着陸する | はい |
| フライトモード | 一時停止:その場で停止し旋回 | はい |
| 発進地点への帰還 | ホームに戻り着陸する | はい |
| 移動 | 1つのウェイポイントに飛行し旋回する | はい — ジオフェンス+高度チェック済み |
| ミッション | ウェイポイントミッションをアップロードして開始 | はい — すべてのウェイポイントをチェック |
会話例
あなた: ドローンをチェックして、問題がなければ20mで短いパトロールをしてください。
エージェント: (
get_capabilitiesを呼び出す — 読み取り専用がオフ、ジオフェンス200mを確認。get_telemetryを呼び出す — GPSFIX_3D、10衛星、バッテリー100%) ドローンは正常です。アームと離陸の承認が必要です。確認しますか?あなた: 確認しました、進めてください。
エージェント: (
arm(confirm=true)、takeoff(altitude_m=20, confirm=true)、次にジオフェンス内の3つのウェイポイントでfly_missionを呼び出し、get_telemetryを監視し、最後にreturn_to_launchを実行) パトロール完了 — ドローンは発進地点に戻り、ディスアームされました。
設定
環境変数 | デフォルト | 説明 |
|
| MAVLinkエンドポイント(PX4 SITLのオフボードポート)。MAVSDK 2.xでは、古い構文 |
|
| 車両を動かせるすべてのツールを拒否する(安全性を参照) |
|
| 離陸/移動/ミッション高度の上限(発進地点からのメートル)。 |
|
| ホーム位置を中心としたソフトジオフェンスの半径(メートル)。 |
安全性
言語モデルに航空機を命令させることは実際のリスクであるため、ガードレールは通常のSDKよりも厳格です。
デフォルトで読み取り専用。 ほとんどのツールとは異なり、飛行には
MAVLINK_MCP_READONLY=falseで明示的にオプトインする必要があります。読み取り専用モードでは、すべてのテレメトリーツールが機能します。すべての変更を伴うツールは、明確な説明とともに拒否されます。危険な遷移には2段階の確認。
armとtakeoffにはconfirm=trueが必要であり、ツールの説明はエージェントにまず人間の承認を得るように指示します。エージェントが単一の自律ステップで正当に離陸することはできません。ソフトジオフェンス + 高度制限。 コマンドされたすべての位置(移動および各ミッションウェイポイント)は、オートパイロットに送信される前に、ホームを中心とした
MAVLINK_MCP_GEOFENCE_RADIUS_MおよびMAVLINK_MCP_MAX_ALTITUDE_Mに対して検証されます。安全アクションは摩擦なし。
land、hold、return_to_launchは確認を必要としません。エスカレーション解除は常に低コストである必要があります。
これらのチェックはこのプロセス内のポリシーであり、オートパイロット自身のフェイルセーフ、PX4/ArduPilotで設定された実際のジオフェンス、ネットワーク分離、またはRC送信機を持つ人間の代わりにはなりません。実際のハードウェアを検討する前に SECURITY.md を読み、実際の飛行には現地の航空法(例:ベトナムの無人航空機に関する政令288/2025では登録と飛行許可が必要)に基づく登録/許可が必要であることを認識してください。
Pythonライブラリ
同じ機能レイヤーはスクリプトやノートブックからインポート可能です。完全な離陸→ウェイポイント→着陸のSITL実行例については examples/patrol_sitl.py を参照してください:
from mavlink_mcp import Drone, GuardrailConfig
from mavlink_mcp.adapters.mavsdk_adapter import MavsdkAdapter
drone = Drone(MavsdkAdapter(), guardrails=GuardrailConfig(readonly=False))
snapshot = await drone.get_telemetry()
await drone.arm(confirm=True)
await drone.takeoff(20.0, confirm=True)プライバシーと法的注意事項
テレメトリーなし、データ収集なし。 このパッケージが開く唯一のネットワーク接続は、設定したMAVLinkエンドポイント(MAVLINK_MCP_URL)です。ツールによって返される車両データは、MCPクライアントにのみ送信されます。
ライセンス準拠。 コアは意図的に MAVSDK-Python (BSD-3-Clause) に依存しており、pymavlink (LGPL-3) には依存していません。これにより、このプロジェクトのMITライセンスの下で依存関係ツリーが寛容な状態に保たれています。直接の依存関係:mavsdk (BSD-3-Clause)、fastmcp (Apache-2.0)。このリポジトリ内のすべてのコードは、公開されたオープンな仕様(MAVLinkプロトコルドキュメント、MAVSDKドキュメント)から書かれたオリジナル作品です。プロプライエタリなSDK、リバースエンジニアリング、ベンダーEULAの受け入れはありません。
FAQ
ドローンは必要ですか? いいえ。MVP1はシミュレーション優先です。すべてがPX4 SITL(Dockerコマンド1つ)に対して動作し、ArduPilot SITLに対しても動作するように設計されています。docs/simulator-quickstart.md を参照してください。
ArduPilotで動作しますか? 機能レイヤーは、MAVSDKを通じてPX4とArduPilotの両方をターゲットにしています。PX4 SITLはMVP1の主要なテストターゲットです。ArduPilot SITLの互換性に関する注意事項はクイックスタートにあり、CIでの検証はロードマップ項目です。
なぜMAVSDKを直接使わないのですか? Pythonを手動で書いている場合は、そうしてください!mavlink-mcpは、MAVSDKにはないレイヤーを追加します。AIエージェントのためのMCPツールサーフェス、実行時発見機能を備えた機能モデル、そしてプロトコル上で強制されるプロダクションガードレール(読み取り専用、確認、ジオフェース)です。
エージェントが車両が発見されなかったと言います。
SITLが実行されていて、MAVLINK_MCP_URL のエンドポイントにMAVLinkを送信しているか確認してください(PX4 SITLはデフォルトでUDP 14540に送信します)。クイックスタートにはトラブルシューティングテーブルがあります。
私のデータはどこかに送信されますか? あなたのMCPクライアントにのみ送信され、クライアントは使用しているLLMに転送します。位置データはそれに応じて扱ってください。
ロードマップ
段階的な計画は ROADMAP.md にあります:MVP1(これ — SITL上の機能レイヤー + MCPサーバー)、MVP2(実際のPixhawkクラスハードウェア、rosbridge-mcpを再利用したROS 2アダプター、プラグイン/コンフォーマンスシステム)、MVP3(コミュニティアダプター、マルチビークル、オープンコアサービス)。
貢献
貢献は歓迎します — CONTRIBUTING.md を参照してください。コミットには署名オフ(DCO)をお願いします。クリーンコントリビューションルールに注意してください:PRは公開された仕様とドキュメントのみに基づく必要があります。
ライセンス
MIT — LICENSE を参照してください。依存関係のライセンスは寛容で互換性があります:mavsdk (BSD-3-Clause)、fastmcp (Apache-2.0)。コアにGPL/LGPL/AGPLの依存関係はありません。
ベトナム語要約(日本語訳)
mavlink-mcp は、UAV向けのベンダーニュートラルな機能レイヤーとMCPサーバーであり、すべてオープンスタンダード上に構築されています。MAVSDKライブラリ(BSD-3)を介して、AIエージェント(Claude Desktop、Cursor、VS Codeなど)とMAVLinkを話すドローン(PX4/ArduPilot)を接続します。これは rosbridge-mcp の姉妹プロジェクトです。
8 つの機能: テレメトリー(位置/姿勢/バッテリー/GPS)、フライトモード、アーム/ディスアーム、離陸、着陸、移動、ミッション、帰還 — 12 ツール MCP。
デフォルトの安全性: 読み取り専用モードがデフォルトで有効(
MAVLINK_MCP_READONLYはデフォルトtrue);アームと離陸はオペレーターの同意後にconfirm=trueが必要;設定可能なソフトジオフェンス+高度制限。シミュレーションファースト: PX4 SITL(Docker 1 コマンド)で実行 — docs/simulator-quickstart.md を参照。本プロジェクトはシミュレーション/研究用です。実際の飛行は、機器登録や人民防空法 49/2024 および政令 288/2025 に基づく飛行許可を含め、すべて自己責任で行ってください。
「mavlink-mcp」という名前は仮のものです — 公開前に Dronecode のトレードマークポリシーを確認します。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables Large Language Models to interact with the ILP Drone Delivery System to plan deliveries, check drone availability, and generate route visualizations. It allows users to manage logistics tasks like capacity planning and temperature requirement matching through natural language.6
- Alicense-qualityFmaintenanceEnables natural language control of ArduPilot drones via MAVLink, supporting arm, takeoff, mode changes, and mission uploads.9GPL 3.0
- Alicense-qualityAmaintenanceEnables AI agents to interact with an ArduPilot vehicle in real-time via MAVLink, including reading state, inspecting and changing parameters, switching flight modes, diagnosing arming failures, and gated arming/disarming.1MIT
- AlicenseBqualityBmaintenanceEnables AI assistants to control Betaflight flight controllers over serial via MSP and CLI, providing real-time sensor reads, full CLI access, and auto-generated variable tools for configuration and tuning.100231AGPL 3.0
Related MCP Connectors
Build, validate, and deploy multi-agent AI solutions from any AI environment.
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Create and manage AI agents that collaborate and solve problems through natural language interacti…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hieutachi/mavlink-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server