Skip to main content
Glama
Ayushsharma109

OpsMCP

🚀 OpsMCP — AIを活用した会社運営エージェント

Model Context Protocol (MCP) を使用して、自然言語によるAI対話をPostgreSQLデータベースに安全に接続する、AIを活用した会社運営エージェントです。

📌 概要

OpsMCPを使用すると、ユーザーは手動でSQLクエリを書いたり複雑な管理パネルを操作したりする代わりに、自然言語で会社データを操作できます。

このシステムは、MCPツールを通じてAIエージェントをPostgreSQLデータベースに接続し、エージェントが情報の取得、ユーザーの分析、承認されたデータベース操作の実行を行えるようにします。

機密性の高い書き込み操作については、データベースを変更する前にユーザーの明示的な確認が必要です。


Related MCP server: PostgreSQL MCP Server

🎯 課題

従来の社内システムでは、ユーザーは以下のことを求められることがよくあります:

  • 複数の管理ダッシュボードを操作する

  • データベース構造を理解する

  • SQLクエリを書く

  • 反復的な操作を手動で実行する

  • データベースの変更を別途追跡する

これにより、日常的な会社運営に不必要な複雑さが生じています。


💡 解決策

OpsMCPは、会社運営のための自然言語インターフェースを提供します。

次のように書く代わりに:

SELECT id, name, email, role
FROM users
ORDER BY id;

ユーザーは単に次のように尋ねることができます:

「すべてのユーザーを表示して。」

AIが必要なMCPツールを判断し、それを実行して結果を受け取り、人間にわかりやすい応答に変換します。


🧠 仕組み

                   ┌──────────────────────┐
                   │      Web Dashboard   │
                   └──────────┬───────────┘
                              │
                              ▼
                   ┌──────────────────────┐
                   │      AI Agent        │
                   │  Natural Language    │
                   └──────────┬───────────┘
                              │
                       MCP Tool Calling
                              │
                              ▼
                   ┌──────────────────────┐
                   │     MCP Server       │
                   │                      │
                   │ Tools • Resources    │
                   │ Prompts • Security   │
                   └──────────┬───────────┘
                              │
                              ▼
                   ┌──────────────────────┐
                   │     PostgreSQL       │
                   │      Database        │
                   └──────────────────────┘

✨ 主な機能

🤖 自然言語によるデータベース操作

ユーザーは通常の言葉で会社データを操作できます。

例:

Show me all users.
Find user with ID 2.
Create a new user named Rahul with role developer.
Change Rahul's role to manager.
Analyze all users and tell me which role has the most users.

🔧 MCPツール

このプロジェクトは、データベース操作をMCPツールとして公開しています。

現在のツールは以下のとおりです:

ツール

目的

get_users

すべてのユーザーを取得する

get_user_by_id

特定のユーザーを取得する

create_user

新しいユーザーを作成する

update_user_role

ユーザーの役割を更新する

analyze_users

ユーザー分布を分析する


📚 MCPリソース

このプロジェクトは、AIエージェントに構造化されたコンテキスト情報を提供するためのMCPリソースも示しています。

例:

company://info

このリソースには、以下の情報が含まれています:

  • 部署

  • 会社の役割

  • 組織構造


🧩 MCPプロンプト

ユーザー分析などの構造化された操作のために、再利用可能なMCPプロンプトが含まれています。

分析ワークフローの例:

1. Count total users
2. Group users by role
3. Identify unusual roles
4. Generate a summary

🔐 セキュリティ

セキュリティはこのプロジェクトの重要な部分です。

APIキー認証

MCPサーバーは、HTTP認証ヘッダーを使用したAPIキー認証をサポートしています。

2つの権限レベルが実装されています:

READ_ONLY
READ_WRITE

認可

読み取り操作は、読み取り専用権限で実行できます。

データベースを変更する操作には、以下が必要です:

READ_WRITE

権限。


⚠️ 書き込み操作前の確認

データベースを変更する操作を実行する前に、AIクライアントはユーザーに確認を求めます。

例:

⚠️ WRITE OPERATION REQUIRES CONFIRMATION

Tool      : update_user_role
Arguments : {
    "user_id": 2,
    "new_role": "manager"
}

Do you want to continue? (yes/no)

データベースは、明示的な承認があった場合にのみ変更されます。


🛡️ 入力検証

データベース操作の前に、ユーザー入力が検証されます。

たとえば、サポートされている役割は次のとおりです:

developer
designer
product manager
manager

次のような無効な入力は:

aestronuot

データベースに挿入される代わりに拒否されます。


📋 監査ログ

データベースを変更する操作は監査ログに記録されます。

例:

action          | tool_name        | status
----------------+------------------+---------
update_user_role| update_user_role  | SUCCESS

これにより、機密性の高い操作のトレーサビリティが提供されます。


🗂️ プロジェクト構造

OPSMCP-AI-AGENNT/
│
├── server/
│   ├── auth/
│   ├── database/
│   │   └── connection.py
│   │
│   ├── prompts/
│   │   └── user_analysis.py
│   │
│   ├── resources/
│   │   └── company.py
│   │
│   └── tools/
│       ├── audit.py
│       └── user_tools.py
│
├── static/
│   ├── app.js
│   └── style.css
│
├── templates/
│   └── index.html
│
├── ai_client.py
├── web_app.py
├── run_server.py
├── requirements.txt
├── .gitignore
└── README.md

🛠️ 技術スタック

バックエンド

  • Python

  • FastAPI

  • Uvicorn

AI

  • OpenAI互換API

  • 関数/ツール呼び出し

  • 自然言語による対話

プロトコル

  • Model Context Protocol (MCP)

  • Streamable HTTPトランスポート

データベース

  • PostgreSQL

  • Psycopg

フロントエンド

  • HTML

  • CSS

  • JavaScript

セキュリティ

  • APIキー認証

  • 読み取り/書き込み認可

  • 確認ベースのデータベース変更

  • 入力検証

  • 監査ログ


⚙️ ローカルセットアップ

1. リポジトリをクローンする

git clone https://github.com/Ayushsharma109/OPSMCP-AI-AGENNT.git

cd OPSMCP-AI-AGENNT

2. 仮想環境を作成する

Windows:

python -m venv .venv

アクティベートする:

.venv\Scripts\activate

3. 依存関係をインストールする

pip install -r requirements.txt

4. 環境変数を設定する

.env ファイルを作成します:

MCP_API_KEY=your_main_api_key
MCP_READONLY_KEY=your_readonly_api_key

OPENAI_API_KEY=your_api_key
OPENAI_BASE_URL=your_base_url
OPENAI_MODEL=your_model

DB_NAME=mcp_demo
DB_USER=postgres
DB_PASSWORD=your_password
DB_HOST=localhost
DB_PORT=5432

.env やAPIキーをGitHubにコミットしないでください。

5. PostgreSQLを起動する

PostgreSQLが実行中で、必要なデータベース/テーブルが存在することを確認します。

6. MCPサーバーを起動する

python run_server.py

MCPサーバーは次の場所で実行されます:

http://127.0.0.1:8000

7. Webアプリケーションを起動する

別のターミナルを開きます:

python web_app.py

ダッシュボードは次の場所で利用できます:

http://127.0.0.1:8080

🧪 ワークフロー例

ユーザー

Show me all users.

AIエージェント

get_users が必要であると判断します。

MCP

以下を実行します:

get_users()

PostgreSQL

ユーザーレコードを返します。

AI

データベースの結果を自然言語の応答に変換します。


🔄 書き込み操作のワークフロー

User Request
     ↓
AI Agent
     ↓
MCP Tool Selection
     ↓
Permission Check
     ↓
User Confirmation
     ↓
Input Validation
     ↓
PostgreSQL Update
     ↓
Audit Log
     ↓
AI Response

この設計は、誤ったデータベース変更を防ぐのに役立ちます。


🏆 ハッカソンMVP

OpsMCPは、MCPを使用してAIエージェントを実際のエンタープライズデータおよび制御されたバックエンド操作に接続する方法を示す、焦点を絞ったMVPとして開発されました。

このプロジェクトは以下に焦点を当てています:

  • AIツール呼び出し

  • MCPアーキテクチャ

  • 安全なデータベース操作

  • 変更に対する人間の確認

  • 監査可能性

  • 自然言語による会社運営


🚀 今後の改善点

考えられる今後の改善点は次のとおりです:

  • 役割ベースのダッシュボードアクセス

  • より多くのエンタープライズMCPツール

  • 高度な分析

  • マルチデータベースサポート

  • 監査ログの可視化の改善

  • デプロイ対応の認証

  • エンタープライズSSO統合

  • より細かい権限


👨💻 著者

Ayush Sharma

以下の探求を目的としたソロハッカソンプロジェクトとして構築:

AIエージェント + MCP + PostgreSQL + 安全なツール実行


📄 ライセンス

このプロジェクトは、主にハッカソンおよび学習プロジェクトとして意図されています。

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    Not graded
    maintenance
    Enables comprehensive PostgreSQL database management through natural language including queries, schema operations, user management, and administrative tasks. Features enterprise-grade connection pooling, transaction support, and full database administration capabilities.
    11
    67 npm
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language interaction with PostgreSQL databases, supporting query execution, schema management, data operations, user management, and database maintenance with secure remote access via HTTP/SSE transport.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables secure, read-only PostgreSQL database interaction through natural language, with automatic database discovery and connection management.
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI assistants to interact with PostgreSQL databases through natural language, with schema-aware query generation and enterprise safety controls.
    18
    161 npm
    2
    MIT