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 키 인증을 지원합니다.

두 가지 권한 수준이 구현되어 있습니다:

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. 웹 애플리케이션 시작

다른 터미널을 엽니다:

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