Commit graph

36 commits

Author SHA1 Message Date
Claude
07b1cb84b2
Add MCP server authentication and update Docker configuration
This commit implements several key improvements to the GeoGuessr MCP server:

## MCP Server Authentication
- Add Bearer token authentication for MCP server access control
- New middleware in src/geoguessr_mcp/middleware/auth.py
- Configuration via MCP_AUTH_ENABLED and MCP_API_KEYS environment variables
- Support for multiple API keys (comma-separated)
- Optional authentication - can be disabled for trusted deployments
- Clients connect using Authorization: Bearer YOUR_API_KEY header

## Docker Configuration Updates
- Update to use official pre-built image: nyxiumyuuki/geoguessr-mcp:latest
- Remove DOCKER_USERNAME and IMAGE_TAG from environment variables
- Simplify docker-compose.yml and docker-compose.prod.yml
- Remove healthcheck configuration (not necessary for the deployment)

## Deployment Improvements
- Move deploy.sh to scripts/deploy.sh for better organization
- Update deploy.sh to use official Docker image
- Add authentication validation in deployment script
- Improve deployment logging and error messages

## Documentation Updates
- Update README.md with authentication configuration examples
- Add MCP server authentication section with setup instructions
- Update environment variables table
- Simplify deployment instructions
- Update CLAUDE.md with new authentication architecture
- Add .env.example configuration for MCP authentication

## Technical Details
- Authentication middleware integrates with FastMCP's Starlette ASGI app
- Middleware validates Bearer tokens on all requests except /health
- Logs authentication attempts and failures
- Returns proper 401/403 HTTP status codes
- Validates configuration on startup to prevent misconfiguration

Resolves TODO items:
- [x] Fix Docker username in compose files and env vars
- [x] Add authentication to MCP server to allow access only to specific users
2025-11-29 22:16:01 +00:00
Yûki VACHOT
52d2f864a8 Add new environment for Bruno and fix README + list of todos. 2025-11-29 23:05:00 +01:00
1621a7f4cc
Merge pull request #3 from NyxiumYuuki/claude/deploy-docker-vps-ssl-014DR2HgeH6wax4BjuPfv8i7
Deploy Docker app to VPS with SSL
2025-11-29 08:31:44 +01:00
Claude
593c668d96
Add VPS production deployment with nginx-proxy-manager support
This commit adds comprehensive support for deploying the GeoGuessr MCP Server
to a VPS alongside existing nginx-proxy-manager setup (e.g., Firefly III).

Changes:
- Updated docker-compose.prod.yml to use existing firefly_network
- Removed standalone nginx service (uses nginx-proxy-manager instead)
- Changed from ports to expose for internal-only access
- Switched default to pre-built Docker Hub images

New files:
- DEPLOYMENT.md: Comprehensive deployment guide with SSL setup
- .env.production: Production-ready environment configuration template
- deploy.sh: Automated deployment script with health checks

Updated files:
- README.md: Added quick reference to VPS deployment with nginx-proxy-manager
- docker-compose.prod.yml: Simplified for proxy manager integration

Deployment features:
- Automatic SSL certificate management via nginx-proxy-manager
- Let's Encrypt integration for HTTPS
- Shared Docker network with existing services
- Persistent schema storage
- Health checks and logging
- Easy updates via deploy script

This setup allows users to deploy the MCP server on the same VPS as other
Docker services while using a single nginx-proxy-manager for SSL/HTTPS.
2025-11-29 07:29:54 +00:00
Yûki VACHOT
92a7298e09 Fix Docker 2025-11-29 07:59:56 +01:00
Yûki VACHOT
0666c07431 Fix Docker 2025-11-29 07:18:31 +01:00
22d70a3bc0
Merge pull request #2 from NyxiumYuuki/claude/add-license-protection-01VCHnCLUEvqQJjEynZR5LFs
Add license and protect repository
2025-11-29 06:30:31 +01:00
Yûki VACHOT
0482fff8c5 Fix format with black 2025-11-29 06:29:35 +01:00
Yûki VACHOT
265e9d25d3 Fix code quality jobs 2025-11-29 06:26:35 +01:00
Yûki VACHOT
d1f0ea2a70 Fix main import and rework files for Bruno collection 2025-11-29 06:24:02 +01:00
Claude
16f3810210
feat: Add comprehensive license and repository protection
- Add MIT LICENSE file with proper copyright attribution
- Add SECURITY.md with vulnerability reporting guidelines
- Add CONTRIBUTING.md with contribution guidelines and standards
- Add CODE_OF_CONDUCT.md following Contributor Covenant 2.1
- Add .github/CODEOWNERS for code ownership protection
- Add GitHub issue templates (bug report, feature request)
- Add pull request template for standardized PRs
- Add automated workflows for code quality and security checks
- Add dependency review workflow for license compliance

This establishes professional standards and protections for the repository.
2025-11-29 05:08:27 +00:00
3855223bab
Merge pull request #1 from NyxiumYuuki/claude/docker-setup-monitoring-01XxBdb5R99jUqtqbAp6p61j
Set up Docker and 24-hour monitoring
2025-11-29 06:00:51 +01:00
Claude
9c5ac820b6
Add Docker deployment support with registry integration
- Update Dockerfile to use pyproject.toml instead of requirements.txt
- Add support for Docker Hub image pulling in compose files
- Add comprehensive deployment documentation with multiple methods
- Create CLAUDE.md with development and architecture guide
- Add .dockerignore for optimized build context
- Update .env.example with Docker configuration variables
- Configure 24-hour monitoring interval by default

Changes:
- Dockerfile: Install from pyproject.toml, use main.py entry point
- docker-compose.yml: Add image option for registry deployment
- docker-compose.prod.yml: Add image option for VPS deployment
- README.md: Add Docker Hub push/pull workflows and examples
- CLAUDE.md: Comprehensive guide for AI assistants and developers
- .dockerignore: Exclude unnecessary files from Docker builds
- .env.example: Add DOCKER_USERNAME and IMAGE_TAG variables
2025-11-29 04:53:07 +00:00
Yûki VACHOT
0236ef23d8 Fix integration tests via mockup 2025-11-29 04:54:37 +01:00
Yûki VACHOT
deeb2af493 Add Geoguessr API Collection updates with v3 and v4 endpoints, including new tools and deprecated endpoints reorganization. 2025-11-29 03:46:18 +01:00
Yûki VACHOT
ca30297033 Add Geoguessr API Collection with v3 and v4 folders, environment setup, and getProfiles endpoint configuration. 2025-11-29 02:52:37 +01:00
Yûki VACHOT
283d7deee4 Add production Docker Compose setup with Nginx and SSL; enhance test fixtures and environment variables for monitoring, logging, and schema caching; and clean up unused imports. 2025-11-29 02:41:39 +01:00
Yûki VACHOT
bf5d1b890a Refactor imports and standardize file naming: update module imports for consistency, align filenames with snake_case convention, and extract DynamicResponse to a dedicated module. 2025-11-29 02:27:58 +01:00
Yûki VACHOT
126d04ab0f Add tools for MCP module: register comprehensive toolsets (auth, profile, game, analysis, monitoring) with enhanced functionality and asynchronous operations. Integrate session handling, API schema analysis, and performance insights. 2025-11-29 02:27:46 +01:00
Yûki VACHOT
1b7963c239 Add and enhance unit tests: include tests for ProfileService, GameService, and AnalysisService; integrate comprehensive mock data and fixtures. Refactor imports and naming conventions in tests for consistency. Augment .env.example with monitoring and logging configurations. 2025-11-29 02:27:15 +01:00
Yûki VACHOT
8cc53378b7 Enable commit message inspection in IDE by configuring subject line character limit warning. 2025-11-29 01:25:34 +01:00
Yûki VACHOT
1a451f6390 Add Geoguessr API collection with getProfiles endpoint to tools module. 2025-11-29 01:25:03 +01:00
Yûki VACHOT
328e597f48 Refactor tools module: removed unused tools, commented out legacy registrations, updated mock data in tests, consolidated imports, and standardized naming conventions in the codebase. 2025-11-29 01:24:58 +01:00
Yûki VACHOT
ec0fe38861 Code cleanup: standardized imports, refined formatting for consistency, and resolved minor redundancies in services, models, monitoring, and tools modules. 2025-11-29 00:49:36 +01:00
Yûki VACHOT
e486d78e31 Standardize "GeoGuessr" naming in docstrings for consistency and correctness. 2025-11-29 00:47:58 +01:00
Yûki VACHOT
f9011dbeaa Add comprehensive unit tests: reorganized test files, removed outdated e2e and unit tests for auth and profile_service, introduced tests for SchemaRegistry, UserProfile, UserStats, Game, Achievement, and SeasonStats. 2025-11-29 00:47:42 +01:00
Yûki VACHOT
f6226f51e4 Remove DEVELOPMENT.md; update .gitignore to include additional ignored files; streamline and condense README.md. 2025-11-29 00:47:33 +01:00
Yûki VACHOT
1976a67a2a Refactor auth module: modularized UserSession and SessionManager, integrated settings for configurable defaults, updated GeoGuessr API domain usage, and added cookie validation functionality. 2025-11-29 00:38:16 +01:00
Yûki VACHOT
80631f6f44 Refactor monitoring module: modularized EndpointMonitor and SchemaRegistry into separate submodules under endpoint and schema respectively. Centralized endpoint definitions, improved structure, and updated imports accordingly. 2025-11-29 00:37:27 +01:00
Yûki VACHOT
aad2bc93ea Enhance main module: added comprehensive server instructions, background API monitoring tasks, dynamic schema adaptation, and detailed logging configuration. Updated Settings with extended environment-based config options. 2025-11-29 00:12:51 +01:00
Yûki VACHOT
383dd0b812 Add services module: implemented ProfileService, GameService, and AnalysisService for user data, game management, and strategy analysis. Enhanced with schema-aware response handling and LLM-friendly output formatting. 2025-11-29 00:09:36 +01:00
Yûki VACHOT
a988aaa04f Introduce monitoring module: added EndpointMonitor for API endpoint checks and SchemaRegistry for dynamic schema tracking. Centralized endpoint definitions and implemented schema change detection. 2025-11-29 00:04:16 +01:00
Yûki VACHOT
4f74343efc Refactor API module: introduced DynamicResponse for schema-aware responses, centralized endpoint definitions in EndpointInfo with metadata, and enhanced GeoGuessrClient with dynamic discovery and response handling. 2025-11-29 00:03:52 +01:00
Yûki VACHOT
6548f11884 Rework data models: reorganized and extended models for UserProfile, Game, and others, added new models (RoundGuess, UserStats, Achievement, SeasonStats, DailyChallenge), and updated __init__.py. 2025-11-29 00:03:31 +01:00
Yûki VACHOT
cfe4a641a6 Rework 2025-11-28 22:15:27 +01:00
Yûki VACHOT
ce5abcc217 Init Commit 2025-11-28 19:24:17 +01:00