test_simple_commit.py•2.23 kB
#!/usr/bin/env python3
"""
MCP 서버의 도구를 직접 호출하여 GitHub에 커밋하는 간단한 스크립트
"""
import asyncio
import os
from dotenv import load_dotenv
# 환경변수 로드
load_dotenv()
# MCP 도구들 직접 import
from mcp_github.tools_write import create_or_update_file
async def commit_via_mcp():
"""MCP 서버로 GitHub에 커밋"""
owner = "J-nowcow"
repo = "github-MCP-practice"
print(f"🚀 MCP 서버로 GitHub 커밋 진행")
print(f"📁 저장소: {owner}/{repo}")
print("=" * 50)
# 간단한 테스트 파일 생성
file_path = "mcp_test/mcp_commit_test.md"
content = """# MCP 서버 테스트 🎯
이 파일은 **직접 만든 MCP 서버**를 통해 GitHub에 커밋되었습니다!
## MCP 서버 기능:
- ✅ 파일 생성/수정
- ✅ 파일 삭제
- ✅ 브랜치 생성
- ✅ 커밋 생성
- ✅ 저장소 상태 조회
## 성공! 🎉
MCP 서버가 정상적으로 작동하고 있습니다.
---
*Generated by Custom MCP Server*
"""
print(f"📝 파일 생성 중: {file_path}")
try:
result = await create_or_update_file(
owner=owner,
repo=repo,
path=file_path,
content=content,
message="🎉 MCP 서버로 직접 커밋 성공!",
branch="main"
)
if result["success"]:
print("✅ 커밋 성공!")
print(f" 📍 파일: {result['data']['path']}")
print(f" 🆔 커밋 SHA: {result['data']['commit_sha'][:8]}")
print(f" 🔗 URL: {result['data']['url']}")
print(f" 🌿 브랜치: {result['data']['branch']}")
else:
print(f"❌ 커밋 실패: {result['error']}")
print(f" 📋 전체 결과: {result}")
except Exception as e:
print(f"❌ 오류 발생: {str(e)}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
# GitHub 토큰 확인
if not os.getenv("GITHUB_TOKEN"):
print("❌ GITHUB_TOKEN 환경변수가 설정되지 않았습니다.")
sys.exit(1)
# 비동기 실행
asyncio.run(commit_via_mcp())