Implemented MCP server core infrastructure with authentication and HTTP client:
- Created auth.py for API token management
- Loads GITEA_API_URL and GITEA_API_TOKEN from environment
- Uses python-dotenv for .env file support
- Validates required configuration on initialization
- Provides authentication headers for API requests
- Created client.py with base HTTP client
- GiteaClient class using httpx AsyncClient
- Async HTTP methods: get(), post(), patch(), delete()
- Comprehensive error handling for HTTP status codes
- Custom exception hierarchy for different error types
- Configurable timeout (default 30s)
- Updated server.py with MCP server setup
- Initialized MCP server with StdioServerTransport
- Integrated AuthConfig and GiteaClient
- Registered placeholder tool handlers (list_repositories, create_issue, create_pull_request)
- Added CLI with --help and --version options
- Proper error handling for configuration failures
- Updated pyproject.toml
- Added console script entry point: gitea-mcp
- Created comprehensive unit tests
- test_auth.py: Tests for AuthConfig validation and headers
- test_client.py: Tests for GiteaClient initialization and error handling
All acceptance criteria met:
- MCP server initializes with StdioServerTransport
- Authentication loads from environment variables
- Base HTTP client with auth headers implemented
- Error handling for API connection failures
- Server reports available tools (placeholders for future issues)
Closes#2
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>