@amrc-factoryplus/mcp
v1.0.0
Published
MCP server for AMRC Connectivity Stack (ACS) - enables AI agents to interact with Factory+ services
Readme
@amrc-factoryplus/mcp
An MCP (Model Context Protocol) server for the AMRC Connectivity Stack (ACS). Enables AI agents (Claude, Cursor, etc.) to interact with Factory+ services including ConfigDB, Auth, and Directory.
Quick Start
npx -y @amrc-factoryplus/mcpOr install globally:
npm install -g @amrc-factoryplus/mcp
amrc-factoryplus-mcpConfiguration
Set the following environment variables:
| Variable | Required | Description |
|----------|----------|-------------|
| DIRECTORY_URL | Yes | URL of the ACS Directory service |
| SERVICE_USERNAME | Yes | Service account username |
| SERVICE_PASSWORD | Yes | Service account password |
| VERBOSE | No | Enable verbose logging |
Usage with MCP Clients
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"acs": {
"command": "npx",
"args": ["-y", "@amrc-factoryplus/mcp"],
"env": {
"DIRECTORY_URL": "https://directory.your-acs.example.com",
"SERVICE_USERNAME": "your-service-account",
"SERVICE_PASSWORD": "your-password"
}
}
}
}Cursor IDE
Add to Cursor's MCP settings:
{
"acs": {
"command": "npx",
"args": ["-y", "@amrc-factoryplus/mcp"],
"env": {
"DIRECTORY_URL": "https://directory.your-acs.example.com",
"SERVICE_USERNAME": "your-service-account",
"SERVICE_PASSWORD": "your-password"
}
}
}Available Tools
ConfigDB Tools
| Tool | Description |
|------|-------------|
| list_apps | List all registered applications |
| get_config | Fetch config by app UUID and object UUID |
| list_configs | List all objects with config for an application |
| search_configs | Search configs with JSONPath query |
| get_class_members | List all members of a class (recursive) |
| get_class_subclasses | List all subclasses of a class (recursive) |
| get_object_info | Get registration and general info for an object |
Auth Tools
| Tool | Description |
|------|-------------|
| list_principals | List all principal UUIDs |
| find_principal | Find info by Kerberos/UUID/Sparkplug ID |
| check_acl | Check if a principal has a permission on a target |
| list_grants | List all permission grant UUIDs |
| get_grant | Get details of a specific grant |
| find_grants | Search grants by principal/permission/target |
| whoami | Get current authenticated identity |
Directory Tools
| Tool | Description |
|------|-------------|
| get_device_info | Get device details (address, schemas, online status) |
| get_device_address | Get Sparkplug address for a device UUID |
| get_service_info | Get full service registration (URL + device) |
| get_service_url | Get HTTP endpoint URL for a service UUID |
Documentation Tools
| Tool | Description |
|------|-------------|
| search_docs | Search ACS documentation on GitHub |
| list_docs | List available documentation files |
| read_doc | Read a specific documentation file |
| search_portal | Search Factory+ documentation portal |
| read_portal_page | Read a Factory+ portal page |
Development
# Clone and install
cd acs-mcp
npm install
# Build TypeScript
npm run build
# Run locally
npm run startPublishing
# Build and publish
npm run build
npm publish --access publicLicense
MIT - see LICENSE
