Foreman MCP Server
Servidor MCP para gerenciamento de hosts Foreman e automação de infraestrutura.
Documentação
Servidor MCP Foreman
Servidor MCP para gerenciamento de hosts Foreman e automação de infraestrutura.
Recursos
- Listar e pesquisar hosts do Foreman
- Obter informações detalhadas do host
- Pesquisar por localização, SO e ambiente
- Configuração genérica via variáveis de ambiente
Instalação
Do PyPI (Recomendado)
pip install foreman-mcp-server
Do código-fonte
git clone https://github.com/rorymcmahon/foreman-mcp-server.git
cd foreman-mcp-server
pip install -e .
## Configuration
Set the following environment variables:
- `FOREMAN_URL`: Base URL of your Foreman instance (e.g., `https://foreman.example.com`)
- `FOREMAN_USERNAME`: Foreman username
- `FOREMAN_PASSWORD`: **Personal Access Token** (not your web login password - create this in User Administration → Personal Access Tokens)
- `FOREMAN_VERIFY_SSL`: Whether to verify SSL certificates (default: `true`)
### Required Permissions
The user account needs the following minimum permissions to use all MCP server tools:
| Resource Type | Permission | Purpose |
|---------------|------------|---------|
| Host | `view_hosts` | List and search hosts, get host details and status |
| Organization | `view_organizations` | List organizations |
| Location | `view_locations` | List locations |
| Hostgroup | `view_hostgroups` | List and search by hostgroups |
| Subnet | `view_subnets` | List subnets and get subnet details |
| Domain | `view_domains` | List domains and get domain details |
| SmartProxy | `view_smart_proxies` | List smart proxies and get proxy details |
### Recommended Roles
Instead of assigning individual permissions, you can use these built-in roles:
| Role | Description | Recommended For |
|------|-------------|-----------------|
| **Viewer** | Read-only access to most Foreman resources | General monitoring and inventory queries |
| **Ansible Tower Inventory Reader** | Specific permissions for inventory access | Automated systems integration |
| **Organization admin** | Full access within assigned organizations | Organization-specific administration |
**Note**: The "Viewer" role provides the most appropriate permissions for this MCP server's read-only operations.
## MCP Configuration
Add to your MCP client configuration:
```json
{
"foreman-mcp-server": {
"command": "foreman-mcp-server",
"env": {
"FOREMAN_URL": "https://foreman.example.com",
"FOREMAN_USERNAME": "your-username",
"FOREMAN_PASSWORD": "your-password",
"FOREMAN_VERIFY_SSL": "true"
}
}
}
Ferramentas Disponíveis
Gerenciamento de Hosts
list_hosts(search, per_page, page)- Listar hosts com busca opcionalget_host(host_id)- Obter informações detalhadas do hostget_host_status(host_id)- Obter informações de status para um host específico
Funções de Busca de Hosts
search_hosts_by_location(location, per_page)- Pesquisar por localizaçãosearch_hosts_by_os(os_name, per_page)- Pesquisar por sistema operacionalsearch_hosts_by_environment(environment, per_page)- Pesquisar por ambientesearch_hosts_by_hostgroup(hostgroup, per_page)- Pesquisar por grupo de hostssearch_hosts_by_fact(fact_name, fact_value, per_page)- Pesquisar por fatos personalizados
Informações de Infraestrutura
list_organizations(per_page)- Listar todas as organizaçõeslist_locations(per_page)- Listar todas as localizaçõeslist_hostgroups(per_page)- Listar todos os grupos de hostslist_subnets(per_page)- Listar todas as sub-redesget_subnet(subnet_id)- Obter informações detalhadas da sub-redelist_domains(per_page)- Listar todos os domíniosget_domain(domain_id)- Obter informações detalhadas do domíniolist_smart_proxies(per_page)- Listar todos os smart proxiesget_smart_proxy(proxy_id)- Obter informações detalhadas do smart proxy
Gerenciamento de SO
list_operatingsystems(per_page)- Listar todos os sistemas operacionaisget_operatingsystem(os_id)- Obter informações detalhadas do sistema operacionallist_architectures(per_page)- Listar todas as arquiteturasget_architecture(arch_id)- Obter informações detalhadas da arquiteturalist_media(per_page)- Listar todas as mídias de instalaçãoget_media(media_id)- Obter informações detalhadas da mídia de instalação
Gerenciamento de Conteúdo
list_content_views(per_page)- Listar todas as visualizações de conteúdoget_content_view(cv_id)- Obter informações detalhadas da visualização de conteúdolist_repositories(per_page)- Listar todos os repositóriosget_repository(repo_id)- Obter informações detalhadas do repositóriolist_lifecycle_environments(per_page)- Listar todos os ambientes de ciclo de vidaget_lifecycle_environment(env_id)- Obter informações detalhadas do ambiente de ciclo de vida
Desenvolvimento
pip install -e ".[dev]"
pytest