Skip to content

Repository files navigation

ScienceLogic MCP

A FastMCP server that provides AI agents with access to ScienceLogic products through API integration.

Supported Products

  • Skylar One (AP2 v:Nougat)- /sky_one/mcp
  • Skylar Compliance (v:5.6) - /sky_comp/mcp

Quick Start

Prerequisites

  • Docker
  • API credentials for your ScienceLogic products

Running the Server

docker run --rm -p 8000:8000 \
-e SKY_COMP_API_URL=https://changeme/api/ \
-e SKY_COMP_API_KEY=changeme \
-e SKY_ONE_API_URL=https://changeme/ \
-e SKY_ONE_API_KEY=changeme \
ghcr.io/sciencelogic/mcp:latest

Example Usage

Connect your AI agent to the MCP server, by default will run at:

  • http://localhost:8000/sky_one/mcp
  • http://localhost:8000/sky_comp/mcp

Ask your AI assissant to:

  • Return a list of devices with a critical status
  • Find what recent events need your attention
  • Compare two backups of a device to determine differences
  • Determine the current state of your appliances

Running

Dockerhub image

docker run --rm -p 8000:8000 \
-e SKY_COMP_API_URL=https://changeme/api/ \
-e SKY_COMP_API_KEY=changeme \
-e SKY_ONE_API_URL=https://changeme/ \
-e SKY_ONE_API_KEY=changeme \
ghcr.io/sciencelogic/mcp:latest

Build Docker image from Source

docker build -t mcp-sl:latest --platform linux/amd64 .
docker run --rm -p 8000:8000 \
-e SKY_COMP_API_URL=https://changeme/api/ \
-e SKY_COMP_API_KEY=changeme \
-e SKY_ONE_API_URL=https://changeme/ \
-e SKY_ONE_API_KEY=changeme \
mcp-sl:latest

Run python locally

cp .env .myenv
# update configuration file
vi .myenv
uv run --env-file .myenv uvicorn mcp_sl.server:app --host 0.0.0.0 --port 8000 --timeout-graceful-shutdown 5

Configuration

ENV VARDescription
SKY_COMP_ENABLE(Optional, default=true) enables the Skylar Compliance MCP server, requires SKY_COMP_API_URL and SKY_COMP_API_KEY to be set
SKY_COMP_API_URL(Required) API endpoint for your Skylar Compliance instance e.g. https://rp42.rp.internal/api/ (requires trailing slash)
SKY_COMP_API_KEY(Required) API Key used to auth your API instance
SKY_COMP_PREFIX(Optional, default="/sc_") Prefixes every tool, helpful for tool name collisions
SKY_ONE_ENABLE(Optional, default=true) enables the Skylar One MCP server, requires SKY_ONE_API_URL and SKY_ONE_API_KEY
SKY_ONE_API_URL(Required) API endpoint for your Skylar One instance e.g. https://my.sl1.host/api/ (requires trailing slash)
SKY_ONE_API_KEY(Required) Basic Auth used to auth your API instance, Base64 encoded 'user:pass'
SKY_ONE_PREFIX(Optional, default="/s1_") Prefixes every tool, helpful for tool name collisions
MAX_QUERY_LIMIT(Optional, default=50) limits the maximum number of results an agent can request (to prevent overloading API endpoints)
LOG_LEVEL(Optional, default=INFO) set the app log level (uvicorn will ignore it currently)
TOOL_TIMEOUT_MS(Optional, default=10000) number of MS to wait for an API call to return from RP
SUPPORT_ELICITATION(Required, default=true) set to true if you want the MCP server to request additional information on non-READ API calls.

TOOLS

Skylar Compliance MCP Server

Tool NameDescriptionAPI Endpoint(s)
list_devicesReturns a list of device detailsGET /devices
get_device_by_idReturns a device by IDGET /devices/{id}
list_device_backups_by_typeReturns a history of backups for a Skylar Compliance device split out by config typeGET /devices/{id}/backups
get_device_backup_by_idReturns a device backup by idGET /devices/{id}/backups/{backup_id}
get_device_backupReturns the lines of a backupPOST /devices/{id}/backups/{backup_id}/config
compare_backupShows the difference between two backupsPOST /devices/backups/diff
list_agentsReturns a list of agentsGET /agents
list_jobsReturns a list of any running jobsGET /jobs
get_job_by_idReturns a job by idGET /jobs/{id}
list_historic_jobsReturns a list of any historic jobsGET /jobs/historic
list_logsReturns system logsGET /logs
statusReturns the health and HA status of the applianceGET /status
GET /settings/ha/status
list_compliance_policiesReturns a list of compliance policiesGET /policies
get_compliance_policy_by_idReturns a compliancy policy by idGET /policies/{id}
get_device_compliance_resultsReturns the results of a device's compliance testGET /devices/{id}/compliance
list_pluginsReturns a list of device pluginsGET /plugins
list_domainsReturns a list of domainsGET /domains

Skylar One MCP Server

Tool NameDescriptionGQL Endpoint(s)
list_devicesReturns a list of device detailsdevices
get_asset_by_device_idReturns assets for a deviceassets
list_eventsReturns a list of events, sorted by most recentevents
list_business_servicesReturns a list of business servicesharProviders
get_appliance_statusReturns a list of appliances and their statusappliances

Testing

uv run pytest

Security

  • This MCP server is unathenticated
  • Uses API authentication to proxy requests to backend API endpoints
  • Not recommended for public networks
  • Access to this server grants access to your ScienceLogic appliances
  • This MCP server is for experimental use only

License

Licensed under Apache 2.0 - see LICENSE file. This is not an official ScienceLogic product.

About

MCP server for allowing AI to interact with ScienceLogic products

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages