🚀 MCP Agent Server
mcp-agent-serverは、オープンソースのモジュール型「脳」で、AI従業員/エージェント向けに設計されており、n8nや他のワークフローエンジンとシームレスに連携することができます。
🚀 クイックスタート
-
リポジトリをクローンします。
git clone https://github.com/yourusername/mcp-agent-server.git cd mcp-agent-server -
必要に応じて、
docsとmemoryフォルダをコピーします。 -
Docker Composeを使用してビルドし、実行します。
docker-compose up --build -
MCPサーバーは、
http://localhost:4000で利用できます。
📚 始める前に
- Node.jsとDockerがインストールされていることを確認します。
package.jsonからコメントを削除します(JSONはコメントをサポートしていません)。- 依存関係をインストールするために、
npm installを実行します。 docker-compose up --buildを使用して、すべてのサービスを起動します。- サーバーは、
http://localhost:4000で利用できます。 - アーキテクチャと設計については、
/docsと/memoryフォルダ、およびMCPメモリ内の「mcp-agent-server project plan」を参照してください。
📁 プロジェクト構造
/docs— 設計、アーキテクチャ、および使用方法のドキュメント/memory— 永続的なメモリ、ログ、および知識
🌟 プロジェクトのビジョン: MCP Agent Server
mcp-agent-serverは、オープンソースのモジュール型「脳」で、AI従業員/エージェント向けに設計されており、n8nや他のワークフローエンジンとシームレスに連携することができます。
-
AI従業員のメタファー
ユーザーは、永続的なAIエージェントを「雇用」、「割り当て」、「評価」、および「改善」することができ、各エージェントには独自のメモリ、学習、およびフィードバックループがあります。 -
独自の考え方とエージェント中心
一般的なワークフロー自動化ツールとは異なり、MCPエージェントサーバーは独自の考え方を持ち、「AI従業員」のメタファーに焦点を当てています。これにより、メモリ、フィードバック、および学習がコア機能となり、オプションの追加機能ではありません。 -
自然言語インターフェイス
自然言語の指示(API呼び出しやワークフロートリガーだけでなく)を受け取り、それを実行可能なタスクに解析し、n8nまたは他のコネクタを介して実行を調整します。 -
積極的、適応的、およびパーソナライズド
エージェントは、アクションを提案し、ユーザーのフィードバックから学習し、時間とともに改善することができます。 -
垂直解決策とシンプルさ
事前構築されたスキル、ワークフロー、およびフィードバックループを備えた垂直解決策(例:「AIアナリスト」、「AI管理者」)をサポートし、中小企業や個人にとってシンプルで非技術的なユーザー体験を提供します。 -
永続的なエージェント中心のメモリ
メモリとフィードバックは永続的でエージェント中心であり、エージェントが過去のアクション、ユーザーの好み、およびパフォーマンス履歴を記憶することができます。 -
簡単なデプロイと拡張性
簡単なデプロイ(Docker、Docker Compose)、拡張性(プラガブルコネクタとスキル)、およびSaaS収益化(マルチテナント、APIキー管理、請求統合)を目的として設計されています。 -
ただのワークフローツールではない
MCPエージェントサーバーは、人間と一緒に働き、経験から学習し、実際のビジネス価値を提供するAI従業員を構築、管理、および改善するためのプラットフォームです。
完全な設計、アーキテクチャ、およびコンテキストについては、MCPメモリ内の「mcp-agent-server project plan」エンティティと、/docs および /memory フォルダを参照してください。
🔑 API認証
すべてのエンドポイント(/health、/users/register、および /users/login を除く)には、x-api-key ヘッダーが必要です。APIキーはユーザーごとに管理されます。ユーザーとAPIキーの管理については、以下を参照してください。
👤 ユーザーとAPIキーの管理
エンドポイント
POST /users/register— 新しいユーザーを登録します(メールアドレス、パスワード)POST /users/login— ログインしてAPIキーを取得しますGET /users/me/api-keys— あなたのAPIキーを一覧表示しますPOST /users/me/api-keys— 新しいAPIキーを作成しますDELETE /users/me/api-keys/:id— APIキーを取り消します
PowerShellの使用例
# 新しいユーザーを登録する
Invoke-RestMethod -Uri "http://localhost:4000/users/register" -Method Post -ContentType "application/json" -Body '{"email": "user@example.com", "password": "yourpassword"}'
# ログインしてAPIキーを取得する
$login = Invoke-RestMethod -Uri "http://localhost:4000/users/login" -Method Post -ContentType "application/json" -Body '{"email": "user@example.com", "password": "yourpassword"}'
$apiKey = $login.apiKey
# APIキーを一覧表示する
Invoke-RestMethod -Uri "http://localhost:4000/users/me/api-keys" -Method Get -Headers @{ "x-api-key" = $apiKey }
# 新しいAPIキーを作成する
Invoke-RestMethod -Uri "http://localhost:4000/users/me/api-keys" -Method Post -Headers @{ "x-api-key" = $apiKey }
# APIキーを取り消す(1を実際のキーIDに置き換える)
Invoke-RestMethod -Uri "http://localhost:4000/users/me/api-keys/1" -Method Delete -Headers @{ "x-api-key" = $apiKey }
curlの使用例
# 新しいユーザーを登録する
curl -X POST http://localhost:4000/users/register -H "Content-Type: application/json" -d '{"email": "user@example.com", "password": "yourpassword"}'
# ログインしてAPIキーを取得する
curl -X POST http://localhost:4000/users/login -H "Content-Type: application/json" -d '{"email": "user@example.com", "password": "yourpassword"}'
# APIキーを一覧表示する
curl http://localhost:4000/users/me/api-keys -H "x-api-key: <your-api-key>"
# 新しいAPIキーを作成する
curl -X POST http://localhost:4000/users/me/api-keys -H "x-api-key: <your-api-key>"
# APIキーを取り消す(1を実際のキーIDに置き換える)
curl -X DELETE http://localhost:4000/users/me/api-keys/1 -H "x-api-key: <your-api-key>"
🧠 エージェントのメモリとフィードバックのエンドポイント
POST /agents/:id/memory— エージェントのメモリ/フィードバックを追加します。GET /agents/:id/memory— エージェントのすべてのメモリ/フィードバックを一覧表示します。POST /agents/:id/trigger— エージェントのアクションをトリガーします(n8n統合のスタブ)。
PowerShellの使用例
$headers = @{ "x-api-key" = "changeme" }
# エージェントを作成する
Invoke-RestMethod -Uri "http://localhost:4000/agents" -Method Post -Headers $headers -ContentType "application/json" -Body '{"name": "Test Agent"}'
# メモリ/フィードバックを追加する
Invoke-RestMethod -Uri "http://localhost:4000/agents/1/memory" -Method Post -Headers $headers -ContentType "application/json" -Body '{"content": "Agent completed onboarding."}'
# メモリ/フィードバックを一覧表示する
Invoke-RestMethod -Uri "http://localhost:4000/agents/1/memory" -Method Get -Headers $headers
# エージェントをトリガーする
Invoke-RestMethod -Uri "http://localhost:4000/agents/1/trigger" -Method Post -Headers $headers
curlの使用例
curl -X POST http://localhost:4000/agents/1/memory -H "Content-Type: application/json" -H "x-api-key: changeme" -d '{"content": "Agent completed onboarding."}'
curl http://localhost:4000/agents/1/memory -H "x-api-key: changeme"
curl -X POST http://localhost:4000/agents/1/trigger -H "x-api-key: changeme"
🗄️ データベースのマイグレーションとスキーマ管理
- すべてのデータベースマイグレーションは、コンテナ起動時に自動的に適用されます(
docker-entrypoint.shを参照)。 - 新しいモデルまたはフィールドを追加するには:
prisma/schema.prismaを編集します。- ローカルで
npx prisma migrate dev --name <desc>を実行します(Docker Postgresを実行している状態)。 prisma/migrations/に生成されたマイグレーションファイルをgitにコミットします。
- デプロイまたはコンテナの再構築時に、すべてのマイグレーションが自動的に適用されます。









