Commit Graph

16 Commits

Author SHA1 Message Date
98fb5905c3 fix: correct MCP server documentation for Claude Desktop integration
- Remove incorrect Docker-based configuration methods from README.md
- Clarify in DOCKER.md that Docker cannot be used for Claude Desktop integration
- Add proper local Python execution examples for Claude Desktop
- Explain MCP stdio protocol limitations with Docker containers
- Add Windows-specific configuration example
2025-07-21 23:07:55 -03:00
ed37ee9e12 docs: update Claude Desktop configuration for Docker containers
- Add Docker-specific Claude Desktop configuration examples
- Document both docker exec and docker run methods
- Explain stdio communication requirements for MCP protocol
- Include prerequisites and important notes for Docker usage
- Update both README.md and DOCKER.md with consistent information

The documentation now properly explains how to connect Claude Desktop
to the MCP servers running in Docker containers, addressing the
special requirements of stdio-based communication.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-21 16:25:34 -03:00
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