フタルキーMCP
Solana 上の Futarchy プロトコルと対話するためのサーバー実装。
セットアップ手順
リポジトリをクローンします。
git clone <repository-url>
cd futarchy-mcp依存関係をインストールします:
npm installRPC URL を設定します。
src/server.tsを開く接続初期化でRPC URLを更新します: GXP3
以下を使用できます:
メインネット:
https://api.mainnet-beta.solana.comDevnet:
https://api.devnet.solana.comまたは独自の RPC プロバイダー URL (これのみで機能します)
開発サーバーを起動します。
npm run devRelated MCP server: Solana MCP Server
利用可能なルート
DAOルート
GET /daos- すべてのDAOを取得するGET /daos/:id- IDで特定のDAOを取得するGET /daos/:id/proposals- 特定のDAOのすべての提案を取得するPOST /daos/:id/proposals- DAO の新しい提案を作成します (DAO 作成ルートが存在しないため、現時点ではテストされていません)体:
{ "descriptionUrl": "string", "baseTokensToLP": "number", "quoteTokensToLP": "number" }
提案ルート
GET /proposals/:id- IDで特定の提案を取得する
テスト
Postmanやcurlなどのツールを使用してルートをテストできます。サーバーはデフォルトでポート9000で動作します。
curl コマンドの例:
# Get all DAOs
curl http://localhost:9000/daos
# Get a specific DAO
curl http://localhost:9000/daos/<dao-address>
# Get proposals for a DAO
curl http://localhost:9000/daos/<dao-address>/proposals
# Create a new proposal
curl -X POST http://localhost:9000/daos/<dao-address>/proposals \
-H "Content-Type: application/json" \
-d '{
"descriptionUrl": "https://example.com/proposal",
"baseTokensToLP": 1000,
"quoteTokensToLP": 1000
}'カーソル用MCPサーバー
このプロジェクトには、Cursor がカスタム ツールを通じて Futarchy バックエンドと対話できるようにする MCP (Model Context Protocol) サーバーも含まれています。
MCPサーバーの設定
セットアップ スクリプトを実行して依存関係をインストールし、プロジェクトをビルドし、カーソルを構成します。
chmod +x setup.sh
./setup.shまたは手動で設定します。
依存関係をインストールしてプロジェクトをビルドする: GXP8
~/.cursor/mcp.jsonを開くか作成します。次の設定を追加します(必要に応じてパスを調整してください):GXP9
カーソルでMCPサーバーを使用する
カーソルのチャットでは次のツールを使用できます。
getDaos- Futarchy システムからすべての DAO を取得しますgetDao- IDで特定のDAOを取得するgetProposals- 特定のDAOのすべての提案を取得するgetProposal- IDで特定の提案を取得するcreateProposal- DAO の新しい提案を作成する
たとえば、Cursor のチャットでは次のように言うことができます。
Use the getDaos tool to retrieve a list of all DAOs from the futarchy-routes backend.MCP サーバーの詳細については、 src/mcp/README.mdを参照してください。
感情分析機能
Futarchy MCPサーバーに、DiscordとTwitterのデータから特定の提案に対する感情を分析する感情分析ツールが追加されました。この機能は、提案に対するコミュニティの感情を理解し、より情報に基づいた意思決定を行うのに役立ちます。
仕組み
感情分析ツールは、特定の提案に関するデータを Discord と Twitter から収集します。
自然言語処理技術を使用して感情を分析します。
感情をさまざまなカテゴリ (トークノミクス、プロトコル パラメーターなど) に分類します。
分析に基づいて、要約、重要なポイント、懸念事項を生成します。
結果は、フロントエンドで簡単に使用できる構造化された形式で表示されます。
回答例
{
"proposalId": "F3hsZzWinRAHbr6CUxdkUFBCH8qNk6Mi9Zfu3PMX49BC",
"sentimentScore": -0.8,
"primaryCategory": "Tokenomics",
"categories": [
{
"name": "Tokenomics",
"score": 0.4
},
{
"name": "Protocol Upgrades",
"score": 0.3
},
{
"name": "Partnerships Integrations",
"score": 0.2
},
{
"name": "Protocol Parameters",
"score": 0.1
}
],
"summary": "The proposal to launch a new Horizon token for the Aave ecosystem has faced significant backlash from the community...",
"keyPoints": [
"The proposed token launch is seen as unnecessary and potentially harmful to the Aave token and community.",
"The revenue-sharing model is perceived as frontloaded and unfair, favoring early years when adoption and revenue may be low.",
"There is a desire to maintain the Aave token as the primary governance and utility token for the ecosystem."
],
"concerns": [
"Dilution of the Aave token's value and attention.",
"Misalignment of incentives with the proposed revenue-sharing model.",
"Creation of a separate entity that could compete with the Aave ecosystem.",
"Lack of transparency and community involvement in the decision-making process."
],
"sources": {
"discord": true,
"twitter": true
}
}使い方
MCP サーバーで感情分析ツールを使用するには、次のようにします。
const result = await mcp_futarchy_routes_getProposalSentiment({
proposalId: "F3hsZzWinRAHbr6CUxdkUFBCH8qNk6Mi9Zfu3PMX49BC"
});これにより、指定された提案の感情分析が返されます。