Commit Graph

14 Commits

Author SHA1 Message Date
10dfd606c0 feat: streamline Docker deployment with registry images and unified env configuration
- Update docker-compose.yml to use pre-built images from GitLab registry
- Replace individual environment variables with unified env_file directive
- Create comprehensive .env.example with detailed instructions and troubleshooting
- Add push-to-registry.sh script for building and pushing images to registry
- Add docker-compose.prod.yml as reference for production deployments
- Update documentation to reflect simplified deployment process

Users can now deploy with just:
  cp .env.example .env
  docker-compose pull
  docker-compose up -d

All 7 MCP server images are available at:
  git.oe74.net/adelorenzo/portainer-mcp/portainer-*:latest

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-21 15:16:15 -03:00
2098453ff1 feat: add Docker support for all MCP servers
- Create individual Dockerfiles for each of the 7 MCP servers
- Add docker-compose.yml for orchestrating all services
- Create build-docker.sh script for easy container building
- Add comprehensive Docker deployment documentation (DOCKER.md)
- Update main README with Docker installation instructions
- Add .env.example template for environment configuration
- Configure each server with dedicated ports (3000-3006)
- Implement security best practices (non-root user, minimal base image)
- Add production deployment considerations and troubleshooting guide

Each server can now be run individually or all together using Docker Compose,
making deployment and scaling much easier for production environments.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-21 00:12:39 -03:00
f9d8407c09 docs: add references to individual server documentation files
- Add documentation links in main README overview section
- Create new Documentation section listing all README files
- Ensure all README files are properly referenced
- All server documentation is now easily discoverable

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-19 01:05:33 -03:00
320777fd3a docs: update main README to reflect complete MCP server suite
- Replace outdated single-server documentation with comprehensive suite overview
- Document all 7 specialized MCP servers with their capabilities
- Add proper installation and configuration instructions for the suite
- Include usage examples for each server type
- Update Claude Desktop configuration examples
- Add security considerations and troubleshooting guide

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-19 00:51:13 -03:00
d5f8ae5794 refactor: clean up codebase and rename core server
- Remove test files and demos (test_*.py, create_nginx_stack.py)
- Remove build artifacts (egg-info directory)
- Rename merged_mcp_server.py to portainer_core_server.py for consistency
- Update documentation to reflect new naming
- Add comprehensive docstrings to all Python files
- Maintain all essential functionality

This cleanup improves code organization while preserving all production servers:
- portainer_core_server.py (formerly merged_mcp_server.py)
- portainer_docker_server.py
- portainer_edge_server.py
- portainer_environments_server.py
- portainer_gitops_server.py
- portainer_kubernetes_server.py
- portainer_stacks_server.py

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-19 00:43:23 -03:00
7a1abbe243 feat: add Portainer Edge MCP server
- Implement comprehensive edge computing functionality
- Add edge environment management (list, get, status, generate keys)
- Add edge stack operations (list, get, create, update, delete)
- Add edge group management (list, get, create, update, delete)
- Add edge job scheduling (list, get, create, delete)
- Add edge settings configuration (get, update)
- Create test scripts for edge API validation
- Add comprehensive README documentation for edge server
- Include nginx stack creation script from earlier testing

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18 23:59:56 -03:00
d7055a912e Fix: Add GitOps support during stack creation and document API limitations
- Updated portainer_stacks_server.py to support GitOps configuration during stack creation
- Added enable_gitops parameter and related GitOps settings to create_compose_stack_from_git
- Created comprehensive documentation (README_GITOPS.md) explaining:
  - Why GitOps cannot be enabled on existing stacks
  - Why GitOps intervals cannot be updated without recreating stacks
  - API limitations that cause Git-based stacks to detach when updated
- Added test script (test_gitops_create.py) to verify GitOps functionality
- Included portainer_gitops_server.py for reference

The Portainer API requires StackFileContent for updates, which detaches stacks from Git.
This is a fundamental API limitation, not an MCP implementation issue.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18 23:16:08 -03:00
51bd6ea954 Fix: Update stack creation endpoint for Git repositories
- Use correct endpoint /api/stacks/create/standalone/repository
- Fix field names to lowercase for this endpoint
- Add proper authentication handling
- Remove incorrect query parameters
2025-07-18 21:42:59 -03:00
c4da16a951 Fix: Add aiohttp to requirements.txt for stacks server 2025-07-18 19:50:47 -03:00
2dfe3c8bc1 Add Kubernetes and Stacks MCP servers
- Implement portainer-kubernetes server with 30 tools for comprehensive K8s management
  - Namespace, pod, deployment, and service operations
  - ConfigMap and Secret management with base64 encoding
  - Storage operations (PV/PVC)
  - Ingress configuration
  - Node information and pod logs

- Implement portainer-stacks server with 13 tools for stack management
  - Docker Compose and Kubernetes manifest support
  - Git repository integration for stack deployments
  - Stack lifecycle management (create, update, start, stop, delete)
  - Environment variable management
  - Stack migration between environments

- Add comprehensive README documentation for both servers
- Make server files executable
2025-07-18 19:45:03 -03:00
e27251b922 feat: add three new Portainer MCP servers
- Add portainer-environments server for environment/endpoint management
- Add portainer-docker server for Docker and Swarm container operations
- Add merged portainer server combining core + teams functionality
- Fix JSON schema issues and API compatibility
- Add comprehensive documentation for each server
- Add .gitignore and .env.example for security

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18 13:00:05 -03:00
7c32d69f2d Fix BaseService constructor inheritance and MCP server initialization
- Fix service constructors to properly call BaseService with required name parameter
- Fix AuthService, UserService, and SettingsService constructor signatures
- Add missing ServerCapabilities to MCP server initialization
- Create main_sync() wrapper function for script entry point compatibility
- Update pyproject.toml to use synchronous entry point for uvx/pip execution

Resolves BaseService.__init__() missing required positional argument error
All execution methods now work correctly: npx, uvx, pip, python -m

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18 08:15:46 -06:00
be1e05c382 Simplify authentication to require URL and API key only
Major configuration and tooling updates:

Authentication Changes:
- Remove username/password authentication support
- Require PORTAINER_URL and PORTAINER_API_KEY (both mandatory)
- Simplify PortainerConfig class and validation logic
- Update all documentation to reflect API key requirement

Multiple Runtime Support:
- Add uvx support for running without installation
- Add uv support with dedicated wrapper script
- Add npx support with Node.js wrapper script
- Maintain backward compatibility with direct Python execution

Documentation Updates:
- Comprehensive README.md with all execution methods
- Detailed USAGE.md with step-by-step instructions
- Updated .env.example with clear required vs optional sections
- Enhanced docstrings in server.py and config.py

Tooling Support:
- package.json for npm/npx support with cross-platform wrapper
- scripts/run-with-uv.py for uv integration
- bin/portainer-core-mcp Node.js wrapper for npx
- test_uvx.py for uvx functionality testing

Configuration Improvements:
- Clear separation of required vs optional environment variables
- Better validation error messages
- Simplified authentication flow
- Enhanced project metadata in pyproject.toml

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18 07:48:23 -06:00
84ca8aee99 first commit 2025-07-18 07:33:27 -06:00