g

gary-mcp

@garyjeong/gary-mcp
0 Stars 167 次浏览 garyjeong 更新于 2026-08-23

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "gary-mcp": {
      "args": [
        "run",
        "--directory",
        "/Users/gary/Documents/workspace/gary-mcp",
        "python",
        "-m",
        "src.server"
      ],
      "command": "uv",
      "env": {
        "AWS_PROFILE": "jongmun",
        "SHELL_RC_PATH": "/Users/gary/.zshrc",
        "WORKSPACE_PATH": "/Users/gary/Documents/workspace"
      }
    }
  }
}

服务介绍

Gary MCP Server

 MCP (Model Context Protocol) . Cursor IDE  AI Agent Token ,    , AWS/Fly.io  ,  PDF ,    .

  • ** **: .
  • **AWS **: AWS CLI jongmun AWS .
  • **Fly.io **: Fly.io , , .
  • ** PDF **: PDF .
  • ** **: , / .
  • **MCP **: Cursor MCP .
    • sequential-thinking:
    • chrome-devtools: Chrome

** MCP ** . Docker , .

  • aws-mcp: AWS CLI
  • flyio-mcp: Fly.io
  • github-mcp: GitHub CLI
  • db-mcp:
  • pdf-mcp: PDF
  • official-docs-mcp:

  • Python 3.12
  • Docker
  • AWS CLI (jongmun )
  • Fly.io CLI ()

1: Docker Compose ()

#  MCP    
docker-compose -f docker-compose.mcp.yml up -d

#   
docker-compose -f docker-compose.mcp.yml up -d aws-mcp db-mcp

#  
docker-compose -f docker-compose.mcp.yml down

2: Docker

  :
# AWS    
docker build -f docker/aws-cli-mcp.Dockerfile -t aws-mcp .
docker run -it --rm \
  -v ~/.aws:/root/.aws:ro \
  -v ~/.zshrc:/root/.zshrc:ro \
  -e AWS_PROFILE=jongmun \
  -e SHELL_RC_PATH=/root/.zshrc \
  aws-mcp

/ :

  • /Users/gary/Documents/workspace:/workspace:ro:

  • ~/.aws:/root/.aws:ro: AWS

  • ~/.zshrc:/root/.zshrc:ro: zshrc (AWS/Fly.io )

  • WORKSPACE_PATH:

  • SHELL_RC_PATH: CLI shell rc ( /root/.zshrc)


    • WORKSPACE_PATH: MCP . Docker --build-arg, -e .
    • SHELL_RC_PATH: AWS/Fly.io CLI shell rc . .zshrc CLI export AWS_*, export FLY_* .
    • AWS_PROFILE, FLY_*: -e .zshrc export .

3. (Docker )

# uv 
pip install uv

#  
uv pip install -e .

#  
python -m src.server

Cursor IDE

Cursor IDE MCP :

  • macOS: ~/.cursor/mcp.json ~/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

1: Docker ()

Docker . .

{
  "mcpServers": {
    "gary-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v", "/Users/gary/Documents/workspace:/workspace:ro",
        "-v", "/Users/gary/.aws:/root/.aws:ro",
        "-v", "/Users/gary/.zshrc:/root/.zshrc:ro",
        "-v", "/Users/gary/Documents/workspace/gary-mcp/.env:/app/.env:ro",
        "-e", "WORKSPACE_PATH=/workspace",
        "-e", "AWS_PROFILE=jongmun",
        "-e", "SHELL_RC_PATH=/root/.zshrc",
        "gary-mcp-server"
      ]
    }
  }
}

:

  • Docker : docker build -t gary-mcp-server .
  • .env .

2: Python

. Docker .

{
  "mcpServers": {
    "gary-mcp": {
      "command": "python3",
      "args": [
        "-m",
        "src.server"
      ],
      "cwd": "/Users/gary/Documents/workspace/gary-mcp",
      "env": {
        "WORKSPACE_PATH": "/Users/gary/Documents/workspace",
        "AWS_PROFILE": "jongmun",
        "SHELL_RC_PATH": "/Users/gary/.zshrc"
      }
    }
  }
}

:

  •  : `uv pip install -e .`
    
  • WORKSPACE_PATH .

3: uv

uv .

{
  "mcpServers": {
    "gary-mcp": {
      "command": "uv",
      "args": [
        "run",
        "--directory", "/Users/gary/Documents/workspace/gary-mcp",
        "python",
        "-m",
        "src.server"
      ],
      "env": {
        "WORKSPACE_PATH": "/Users/gary/Documents/workspace",
        "AWS_PROFILE": "jongmun",
        "SHELL_RC_PATH": "/Users/gary/.zshrc"
      }
    }
  }
}

  1. ** JSON **: ~/.cursor/mcp.json .
  2. **Cursor IDE **: Cursor IDE .
  3. ** **: Cursor MCP gary-mcp .
  4. ** **: AI list_databases, run_query, read_document .

  • WORKSPACE_PATH:
    • Docker: (: /workspace)
    • : (: /Users/gary/Documents/workspace)

AWS

  • AWS_PROFILE: AWS (: jongmun)
  • AWS ~/.aws .zshrc .

Fly.io

  • Fly.io .zshrc FLY_* .

GitHub

  • GitHub CLI GH_*/GITHUB_* (GH_TOKEN, GITHUB_TOKEN ) .
  • gh auth login .

  • .env DB .
  • .

LLM docs/manifest.yaml . type: git, type: archive type: http AWS/Python/FastAPI/Docker/Kubernetes/Fly.io/PostgreSQL/Redis/Next.js/Tailwind CSS URL .

1.

#   
python scripts/sync_docs.py

#    ()
python scripts/sync_docs.py python fastapi aws-main docker-main
  • Python, FastAPI, React, TypeScript, Go, AWS, Docker, Kubernetes, Fly.io, PostgreSQL, Redis, Next.js, Tailwind CSS .
  • docs/mirror/<>/<> , .gitignore .

2. HTTP

type: http URL .

- name: python-main
  type: http
  version: "3.x"
  target: python/main
  pages:
    - url: https://docs.python.org/3/

3. MCP

  • sync_official_docs: MCP (names ).
  • list_official_docs: .
  • search_official_docs: (name ).

4. DocumentService

WORKSPACE_PATH=/Users/gary/Documents/workspace docs/mirror read_document/search_documents . docs/manifest.yaml scripts/sync_docs.py .

read_document

.

:

  • file_path ():

:

{
  "file_path": "/workspace/my-project/README.md"
}

list_workspace_projects

.

:

{}

search_documents

.

:

  • query ():
  • project_name ():

:

{
  "query": "FastAPI",
  "project_name": "my-api-project"
}

AWS

aws_cli_execute

AWS CLI (jongmun ).

:

  • service (): AWS (: s3, ec2, lambda)
  • operation (): (: list, describe-instances)
  • additional_args ():

:

{
  "service": "s3",
  "operation": "ls"
}

aws_list_resources

AWS .

:

  • service (): AWS
  • resource_type ():

:

{
  "service": "ec2",
  "resource_type": "instances"
}

aws_get_account_info

AWS .

:

{}

Fly.io

flyio_list_apps

Fly.io .

:

{}

flyio_get_app_status

Fly.io .

:

  • app_name ():

:

{
  "app_name": "my-app"
}

flyio_get_app_logs

Fly.io .

:

  • app_name ():
  • lines (): (: 50)

:

{
  "app_name": "my-app",
  "lines": 100
}

GitHub

github_cli_execute

GitHub CLI .

:

  • command (): (: "repo", "issue", "pr")
  • args ():

github_list_repos

.

:

  • owner (): /
  • visibility (): public, private, internal
  • limit (): ( 20)
  • sort (): ( updated)

github_list_pull_requests

PR .

:

  • repo (): owner/repo
  • state (): open, closed, all ( open)
  • limit (): ( 20)

github_list_issues

.

:

  • repo ()
  • state (): open, closed, all
  • limit (): ( 20)

PDF

markdown_to_pdf

PDF .

:

  • markdown_path ():
  • output_path (): PDF
  • css_path (): CSS

:

{
  "markdown_path": "/workspace/my-project/README.md",
  "output_path": "/workspace/my-project/README.pdf"
}

analyze_code_flow

.

:

  • project_path ():
  • entry_point ():

:

{
  "project_path": "/workspace/my-project",
  "entry_point": "main.py"
}

.

:

  • project_path ():
  • target_function ():
  • target_class ():
  • target_import (): import

:

{
  "project_path": "/workspace/my-project",
  "target_function": "process_data"
}

get_code_reusability

.

:

  • project_path ():
  • language (): (: python)

:

{
  "project_path": "/workspace/my-project",
  "language": "python"
}

list_databases

.

:

  • db_name (): DB
  • connection_string (): (: postgresql+asyncpg://user:pass@host:5432/db)
  • use_dotenv (): .env (: true)
  • use_aws_secrets (): AWS Secrets Manager
  • aws_secret_name (): AWS
  • use_github_secrets (): GitHub Secrets
  • github_secret_name (): GitHub
  • github_repo (): GitHub

:

{
  "connection_string": "postgresql+asyncpg://user:pass@localhost:5432/mydb"
}

describe_tables

.

:

  • db_name (): DB
  • connection_string ():
  • database ():
  • use_dotenv, use_aws_secrets, aws_secret_name, use_github_secrets, github_secret_name, github_repo ():

:

{
  "connection_string": "sqlite+aiosqlite:///./test.db"
}

run_query

SQL ( read-only, read-write ).

:

  • query (): SQL
  • db_name (): DB
  • connection_string ():
  • parameters (): (dict)
  • limit (): (: 100)
  • mode (): - read_only read_write (: read_only)
  • use_dotenv, use_aws_secrets, aws_secret_name, use_github_secrets, github_secret_name, github_repo ():

:

{
  "query": "SELECT * FROM users WHERE id = :id",
  "parameters": {"id": 1},
  "connection_string": "postgresql+asyncpg://user:pass@localhost:5432/mydb",
  "mode": "read_only"
}

:

  • read_only, INSERT/UPDATE/DELETE .
  • `mode: "read_write"`   .
    
  • .env DATABASE_URL DB .
  • AWS Secrets Manager GitHub Secrets .

sync_official_docs

.

:

  • names ():
  • force (): ( false)

list_official_docs

 .

search_official_docs

.

:

  • query ():
  • name ():
  • limit (): ( 5)
  • structured (): true /

resolve_library_id

ID .

:

  • name (): ) react, next.js, typescript, python, spring, mysql

list_libraries

.

:

  • category (): framework | language | orm | database | cloud
  • available_only ():

get_library_docs

Context7 .

:

  • library_id (): ) /libraries/react
  • mode (): info | code ( info)
  • topic (): (: hooks, routing)
  • limit (): ( 5, topic )

MCP

gary-mcp Cursor MCP . MCP .

gary-mcp MCP :

  1. ~/.cursor/mcp.json
  2. ~/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  3. cursor-mcp-local.json

MCP

MCP ( ):

  • sequential-thinking: ( : thinking_*)
  • chrome-devtools: Chrome ( : chrome_*)

MCP . :

  • sequential-thinking thinking_
  • chrome-devtools chrome_

MCP , gary-mcp .

gary-mcp/
 src/
    __init__.py
    server.py              #  MCP  ()
    servers/               #  MCP 
       __init__.py
       base_server.py     #    
       aws_server.py       # AWS 
       flyio_server.py    # Fly.io 
       github_server.py   # GitHub 
       db_server.py       #  
       pdf_server.py      # PDF  
       official_docs_server.py  #   
    tools/                 #   
       __init__.py
       document_tool.py   #   
       aws_tool.py        # AWS CLI 
       flyio_tool.py      # Fly.io 
       pdf_tool.py        # PDF 
       code_analysis_tool.py  #   
       db_tool.py         #   
    infrastructure/
       db/
           connection_manager.py  # DB  
    utils/
        __init__.py
        file_utils.py      #  
        env_loader.py      #  / 
 docker/                    #   Dockerfile
    base.Dockerfile        #  
    aws-cli-mcp.Dockerfile
    flyio-mcp.Dockerfile
    github-cli-mcp.Dockerfile
    db-mcp.Dockerfile
    pdf-mcp.Dockerfile
    official-docs-mcp.Dockerfile
 docker-compose.mcp.yml     #    Docker Compose 
 tests/
    __init__.py
    test_document_service.py
    test_pdf_service.py
    test_code_analysis_service.py
    test_cli_services.py
    test_db_tool.py        # DB  
 pyproject.toml             # uv  
 Dockerfile                 #   Docker  ()
 .dockerignore              # Docker   
 .env.example               #   
 README.md                  #  

  • Python 3.12: Python
  • uv: Python
  • MCP SDK: Model Context Protocol Python SDK
  • asyncio: /
  • SQLAlchemy: ORM DB
  • asyncpg/aiomysql/aiosqlite: DB
  • weasyprint: PDF
  • AWS CLI: AWS
  • Fly.io CLI: Fly.io
  • boto3: AWS Secrets Manager
  • python-dotenv: .env

AWS CLI

****: AWS CLI .

** :**

  1. AWS :
    aws configure list --profile jongmun
    
  2. Docker AWS :
    docker run -it --rm -v ~/.aws:/root/.aws:ro gary-mcp-server ls /root/.aws
    

Fly.io CLI

****: Fly.io .

** :**

  1. Fly.io CLI :
    docker run -it --rm gary-mcp-server flyctl version
    
  2. Fly.io :
    docker run -it --rm gary-mcp-server flyctl auth login
    

PDF

****: PDF .

** :**

  1. WeasyPrint

****: .

** :**

  1. Docker
  2. /workspace (Docker )

****: DB .

** :**

  1. .env :
# .env  
DATABASE_URL=postgresql+asyncpg://user:password@host:5432/dbname
# 
DB_TYPE=postgresql
DB_HOST=localhost
DB_PORT=5432
DB_USER=user
DB_PASSWORD=password
DB_NAME=dbname
  1. AWS Secrets Manager :
    • IAM
    • aws_secret_name
  2. GitHub Secrets :
    • gh auth login
  3. Docker DB :
    • --network host

****: sync_official_docs scripts/sync_docs.py .

** :**

  1. git, tar, zip .
  2. / HTTPS_PROXY .
  3. docs/manifest.yaml URL .
  4. rm -rf docs/mirror docs/sources .

#  
git clone <repository-url>
cd gary-mcp

# uv 
pip install uv

#  
uv pip install -e .

#  
python -m src.server

  • Python 3.12+
  • async/await
  • docstring

 .

, .

相关 MCP 服务