groundlight-mcp-server
The project is a Model Context Protocol server designed to interact with Groundlight, offering tools to analyze images through detectors based on natural-language queries. It provides functionalities for detector management, image query submission, and alert system for actions on specific conditions. The server aims to continuously improve its capabilities.
groundlight-mcp-server
Overview
A Model Context Protocol (MCP) server for interacting with Groundlight. This server provides tools to create and list both Detectors and ImageQueries.
This MCP server is still in early development. The functionality and available tools are subject to change and expansion as we continue to develop and improve the server.
Tools
The following tools are available in the Groundlight MCP server:
-
create_detector
-
Description: Create a detector based on the specified configuration. Supports three modes:
- Binary: Answers 'yes' or 'no' to a natural-language query about images.
- Multiclass: Classifies images into predefined categories based on natural-language queries.
- Counting: Counts occurrences of specified objects in images using natural-language descriptions.
All detectors analyze images to answer natural-language queries and return confidence scores indicating result reliability. If confidence falls below the specified threshold, the query is escalated to human review. Detectors improve over time through continuous learning from feedback and additional examples.
-
Input:
config
(DetectorConfig object with name, query, confidence_threshold, mode, and mode-specific configuration) -
Returns:
Detector
object
-
-
get_detector
- Description: Get a detector by its ID.
- Input:
detector_id
(string) - Returns:
Detector
object
-
list_detectors
- Description: List all detectors associated with the current user.
- Input: None
- Returns: List of
Detector
objects
-
submit_image_query
- Description: Submit an image to be answered by the specified detector. The image can be provided as a file path, URL, or raw bytes. The detector will return a response with a label and confidence score.
- Input:
detector_id
(string),image
(string or bytes) - Returns:
ImageQuery
object
-
get_image_query
- Description: Get an existing image query by its ID.
- Input:
image_query_id
(string) - Returns:
ImageQuery
object
-
list_image_queries
- Description: List all image queries associated with the specified detector. Note that this may return a large number of results.
- Input:
detector_id
(string) - Returns: List of
ImageQuery
objects
-
get_image
- Description: Get the image associated with an image query by its ID. Optionally annotate with bounding boxes on the image if available.
- Input:
image_query_id
(string),annotate
(boolean, default: false) - Returns:
Image
object
-
create_alert
- Description: Create an alert for a detector that triggers actions when specific conditions are met.
- Input:
config
(AlertConfig object with name, detector_id, condition, and optional webhook_action, email_action, text_action, enabled, and human_review_required fields) - Returns:
Rule
object
-
list_alerts
- Description: List all alerts (rules) in the system. (Note: Not filtered by detector in the current implementation.)
- Input:
page
(integer, default: 1),page_size
(integer, default: 100) - Returns: List of
Rule
objects
-
delete_alert
- Description: Delete an alert (rule) by its alert ID.
- Input:
alert_id
(string) - Returns: None
-
add_label
- Description: Provide a label (annotation) for an image query. This is used for training detectors or correcting results. For counting detectors, you can optionally provide regions of interest.
- Input:
image_query_id
(string),label
(integer or string),rois
(optional list) - Returns: None
-
get_detector_evaluation_metrics
- Description: Get detailed evaluation metrics for a detector, including confusion matrix and examples.
- Input:
detector_id
(string) - Returns: Dictionary of evaluation metrics
-
update_detector_confidence_threshold
- Description: Update the confidence threshold for a detector.
- Input:
detector_id
(string),confidence_threshold
(float) - Returns: None
-
update_detector_escalation_type
- Description: Update the escalation type for a detector. This determines when queries are sent for human review. Options: 'STANDARD' (escalate based on confidence threshold) or 'NO_HUMAN_LABELING' (never escalate).
- Input:
detector_id
(string),escalation_type
(string, either "STANDARD" or "NO_HUMAN_LABELING") - Returns: None
Configuration
Usage with Claude Desktop
Add this to your claude_desktop_config.json:
"mcpServers": {
"groundlight": {
"command": "docker",
"args": ["run", "--rm", "-i", "-e", "GROUNDLIGHT_API_TOKEN", "groundlight/groundlight-mcp-server"],
"env": {
"GROUNDLIGHT_API_TOKEN": "YOUR_API_TOKEN_HERE"
}
}
}
Usage with Zed
Add this to your settings.json:
{
"context_servers": {
"groundlight": {
"command": {
"path": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"GROUNDLIGHT_API_TOKEN",
"groundlight/groundlight-mcp-server"
],
"env": {
"GROUNDLIGHT_API_TOKEN": "YOUR_API_TOKEN_HERE"
}
}
}
}
}
Development
Build the Docker image locally:
make build-docker
Run the Docker image locally:
make run-docker
[Groundlight Internal] Push the Docker image to Docker Hub (requires DockerHub credentials):
make push-docker
s