ThinkPLC-MCP
Interfaceie com o CLP SIEMENS S7-1500/1200 usando sua API JSON-RPC 2.0, expondo funcionalidades do CLP como ferramentas MCP para interação programática.
Documentação
ThinkPLC-MCP
ThinkPLC-MCP é um servidor projetado para interfacear com SIEMENS PLC S7-1500/1200 usando sua API JSON-RPC 2.0. Ele expõe as funcionalidades da API como ferramentas MCP, permitindo que assistentes de IA e outros clientes compatíveis com MCP interajam com o PLC programaticamente.
🔧 Recursos
- Conecta-se a um endpoint SIEMENS PLC API (Webserver)
- Fornece ferramentas MCP para:
- ✅ Autenticação de usuário (
login,logout,ChangePassword-user) - ✅ Verificar conectividade do PLC (
ping) - ✅ Recuperar permissões de usuário via
Api-GetPermissionsapós o login - ✅ Obter a versão da API com
Api-Version - ✅ Listar métodos de API disponíveis usando
Api-Browse - ✅ Recuperar informações de estrutura com
Api-GetQuantityStructures - ✅ Obter políticas de segurança de senha com
Api-GetPasswordPolicy - ✅ Navegar por tags e metadados usando
PlcProgram-Browse - ✅ Ler variáveis individuais via
PlcProgram-Read - ✅ Escrever tags Boolean, Number ou String com
PlcProgram-Write-* - ✅ Ler o modo de operação atual da CPU com
Plc-ReadOperatingMode - ✅ Solicitar uma mudança de modo de operação usando
Plc-RequestChangeOperatingMode - ✅ Ler o horário do sistema da CPU (
Plc-ReadSystemTime) - ✅ Definir o horário do sistema da CPU (
Plc-SetSystemTime) - ✅ Ler idiomas de projeto disponíveis (
Project-ReadLanguages) - ✅ Navegar por alarmes ativos (
Alarms-Browse) - ✅ Confirmar alarmes (
Alarms-Acknowledge) - ✅ Navegar por entradas do buffer de diagnóstico (
DiagnosticBuffer-Browse)
- ✅ Autenticação de usuário (
- 🔄 Opcional: login automático de conta de serviço com renovação de token
⚙️ Pré-requisitos
- Node.js (v18.x ou posterior recomendado)
- npm (incluído com Node.js)
- Acesso a um SIEMENS PLC API (Webserver) em execução
⚙️ Configuração
Este servidor usa um arquivo config.js escrito em sintaxe ES Module.
Exemplo de config.js:
export const config = {
URL: "https://<PLC-IP-Address>/api/jsonrpc", // required
userName: "your-username", // optional
pwr: "your-password", // optional
};
🚀 Começando
- Navegue até a pasta do projeto:
cd your-project-directory
- Instale as dependências:
npm install
-
Edite o config.js conforme mostrado acima.
-
Inicie o servidor
node start
🖥️ Conectando com Claude Desktop
Para usar este servidor MCP com Claude AI (versão desktop):
-
Encontre ou crie o arquivo claude_desktop_config.json (normalmente na pasta de configuração do aplicativo Claude).
-
Adicione ou atualize o seguinte:
{
"mcpServers": {
"ThinkPLC-MCP": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:5000/mcp"]
}
}
}
- Certifique-se de que @modelcontextprotocol/tools está instalado:
npm install -g @modelcontextprotocol/tools