Skip to main content
Glama
sciple-idp

Sciple Platform MCP Server

Official
by sciple-idp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SCIPLE_PLATFORM_URLNoThe URL of the Sciple platform (optional, only needed if multiple platforms cached)

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
athena_list_workspacesA

List Athena workspaces in this tenant.

Each workspace pins an AWS account + region + Athena workgroup as a query target. The returned id is the value to pass as workspace_id on every other Athena tool.

athena_list_databasesA

List Glue databases visible to a workspace.

Args: workspace_id: The Athena workspace id (from athena_list_workspaces).

athena_list_tablesA

List tables in a Glue database.

Args: workspace_id: The Athena workspace id. database: The Glue database name.

athena_describe_tableA

Show columns and partition keys for a single table.

Args: workspace_id: The Athena workspace id. database: The Glue database name. table: The table name.

athena_run_queryA

Run a SQL query against an Athena workspace; polls until SUCCEEDED / FAILED / CANCELLED or max_wait_seconds elapses, then returns the execution id, status, and the first 1000-row page on success.

Read-only / multi-statement / UNLOAD violations come back as 400 with a structured code (READ_ONLY_VIOLATION, MULTI_STATEMENT, etc). BYTES_CAP_EXCEEDED is the same path — the platform auto-cancels the execution and surfaces the code on the next poll.

Args: workspace_id: The Athena workspace id. sql: A single SQL statement (the parser gate rejects multi-statement). max_wait_seconds: How long to poll before timing out (caller can resume with athena_get_execution_status). Default 60.

athena_get_execution_statusA

Poll a single tick. Use when athena_run_query timed out.

Args: execution_id: The Athena execution id.

athena_get_resultsA

Fetch the next 1000-row page of results from a SUCCEEDED execution.

Args: execution_id: The Athena execution id. next_token: Optional page token returned by a previous call.

athena_cancelA

Cancel an in-flight Athena execution (StopQueryExecution server-side).

Args: execution_id: The Athena execution id.

athena_save_queryB

Persist a SQL query under the caller's user, scoped to a workspace.

Args: workspace_id: The Athena workspace id this saved query belongs to. name: Short label for the saved query. sql: The SQL text to save.

athena_list_savedA

List the caller's saved Athena queries, optionally filtered to a workspace.

Args: workspace_id: Optional Athena workspace id to filter the list.

athena_historyA

Recent Athena executions for the caller (per-user history).

Args: workspace_id: Optional Athena workspace id to filter the list. limit: Max rows to return (1-500). Default 20.

list_aws_accountsA

List the AWS accounts connected to this tenant.

Returns each account's internal id (used as account_id in the other cloud tools), display name, 12-digit AWS account number, synced regions, and whether it is the Organizations payer account.

list_cloud_resource_typesA

List the resource types synced for one AWS service in an account.

Use this to discover what resource_type values query_cloud_resources accepts for a given service, along with how many rows each holds.

Args: account_id: Internal account id from list_aws_accounts. service: AWS service area. One of: cloudfront, codebuild, codecommit, codedeploy, codepipeline, dynamodb, ebs, ec2, ecr, ecs, efs, eks, elasticache, iam, lambda, rds, route53, s3, vpc.

query_cloud_resourcesA

Query cached rows from any synced AWS resource table (read-only).

Generic accessor over every supported service. Call list_cloud_resource_types first to find valid resource_type values. Large nested payloads are omitted from the summary; identity/scalar fields are shown as key=value.

Args: account_id: Internal account id from list_aws_accounts. service: AWS service area (see list_cloud_resource_types). resource_type: Table name, e.g. "aws_ec2_instance", "aws_rds_db_instance". region: Optional region filter, e.g. "us-east-1" ("global" for S3). page: 1-based page number (default 1). page_size: Rows per page, 1–500 (default 50).

list_ec2_instancesA

Summarize EC2 instances — for one account or across all of them.

Convenience view over aws_ec2_instance formatted as [state] type id name (private_ip), grouped per account with a running/ stopped tally. Omit account_id to sweep every connected account.

Args: account_id: Internal account id from list_aws_accounts. If omitted, every connected account is queried. region: Optional region filter, e.g. "us-east-1".

db_list_connectionsA

List SQL Console connections (RDS Postgres / MySQL) in this tenant.

db_describe_schemaC

Introspect a connection (databases / schemas / tables / columns).

Args: connection_id: The DB Console connection id.

db_queryA

Run a SQL statement synchronously against a SQL Console connection.

The caller's access profile (server-side) gates read-only vs read-write; an INSERT through a read-only profile errors at the platform, not here.

Args: connection_id: The DB Console connection id. sql: A single SQL statement to execute.

db_save_queryC

Persist a SQL query under the caller's user, scoped to a connection.

Args: connection_id: The DB Console connection id this saved query belongs to. name: Short label. sql: The SQL text.

db_list_savedA

List the caller's saved DB Console queries.

Args: connection_id: Optional connection id to filter the list.

list_environmentsA

List all environments in the tenant (id, name, slug, group, default flag).

create_environmentA

Create an environment.

Args: name: Display name, e.g. "Production". slug: URL-safe id; server generates one from name if omitted. environment_group_id: Optional parent environment-group id. description: Optional human description. is_default: Mark this the tenant's default environment. display_order: Sort order in the UI (lower = earlier).

update_environmentB

Update an environment. Only provided fields change.

Args: env_id: The environment id to update. name: New display name. description: New description. environment_group_id: Move to a different environment group. is_default: Set/unset default. display_order: New sort order.

delete_environmentA

Delete an environment by id. This cannot be undone.

Args: env_id: The environment id to delete.

list_environment_groupsB

List environment groups (id, name, slug, aws account binding).

create_environment_groupB

Create an environment group.

Args: name: Display name, e.g. "Production accounts". slug: URL-safe id; generated from name if omitted. description: Optional description. display_order: Sort order in the UI. aws_account_id: Optional AWS account id to bind the group to.

list_dashboardsA

List all observability dashboards in the tenant (id, name, panel count).

get_dashboardA

Get a single dashboard's name, description, and panel list.

Args: dashboard_id: The dashboard id to retrieve.

create_dashboardA

Create a new observability dashboard.

Args: name: Dashboard display name (1-200 characters, must be unique within tenant). description: Optional human-readable description.

update_dashboardA

Replace a dashboard's name and description (full PUT — name is required).

The API uses PUT with DashboardWrite: name is always required; description is optional (omitting it sets it to null on the server).

Args: dashboard_id: The dashboard id to update. name: New display name (1-200 characters, must be unique within tenant). description: New description; pass null/omit to clear it.

delete_dashboardA

Delete a dashboard and all its panels. This cannot be undone.

Args: dashboard_id: The dashboard id to delete.

add_panelA

Add a panel to a dashboard.

A panel belongs to ONE of five shapes — pick one based on what the user wants and supply only that shape's parameters:

  1. PromQL metric promql=

  2. CloudWatch metric cw_namespace + cw_metric_name + cw_stat (optional cw_dimensions JSON, cw_period)

  3. ElasticSearch/OpenSearch logs panel_type='logs' (or 'log_table') + es_index + optional kql_filter + optional log_* display options

  4. CloudWatch Logs panel_type='logs' (or 'log_table') + cw_log_group + optional cw_filter_pattern + optional log_* display options

  5. Text panel_type='text' + text_content (optional text_background hex color)

ALWAYS pass datasource_id (the observability data source id from the Sciple UI → Data sources) for metric + log panels — without it the panel binds to the dashboard's default and may render empty. Text panels never need a data source.

Recommended panel_type per shape: line / bar / stat / gauge → metric panels logs / log_table → log panels text → text panels

Args: dashboard_id: The dashboard id to add the panel to. title: Panel title (1-200 characters). panel_type: One of: line, bar, stat, gauge, logs, log_table, text. Defaults to "line". unit: Display unit string (e.g. "none", "bytes", "percent", "bits/s"). Defaults to "none". legend_label: Legend label for metric queries. Ignored for log panels (use log_columns instead) and text panels. datasource_id: Id of the observability data source. Required for metric + log panels. promql: PromQL expression. Use for shape #1. cw_namespace, cw_metric_name, cw_stat: CloudWatch metric triple (e.g. "AWS/EC2", "CPUUtilization", "Average"). Use for shape #2. cw_dimensions: JSON string of CloudWatch dimensions, e.g. '[{"Name": "InstanceId", "Value": "i-0abc..."}]'. cw_period: CloudWatch period in seconds (e.g. 60). es_index: ElasticSearch / OpenSearch index pattern, e.g. "production-eks-pods-logs" or "logs-". Use for shape #3. kql_filter: Optional KQL filter for ES, e.g. 'level:error AND service:"api"'. Use for shape #3 (paired with es_index). cw_log_group: CloudWatch Logs log group, e.g. "/aws/lambda/my-fn". Use for shape #4. cw_filter_pattern: Optional CloudWatch Logs filter pattern, e.g. "?ERROR ?WARN" or "[..., status_code=5, ...]". Use for shape #4 (paired with cw_log_group). log_columns: Ordered list of column names to display in the log table, e.g. ["timestamp", "level", "message"]. Defaults to the editor's default if omitted. log_limit: Max rows to fetch (defaults match the UI; typical 200). log_wrap_message: Wrap long log messages (default false). log_expandable_rows: Allow row expansion (default true). log_highlight_by_severity: Color rows by severity (default true). log_live_tail: Enable live-tail mode (default false). text_content: Markdown body for a text panel. Required when panel_type='text'. text_background: Optional CSS color string for the text panel background, e.g. "#dcfce7", "rgb(220, 252, 231)".

delete_panelA

Delete a panel from a dashboard. This cannot be undone.

Args: dashboard_id: The dashboard id that owns the panel. panel_id: The panel id to delete.

list_projectsA

List all projects in the tenant (id, key, name, classification).

get_projectA

Get a single project's full details.

Args: project_id: The project id (NOT the key — use list_projects first to find it).

create_projectA

Create a new project.

Args: name: Display name (1-200 chars), e.g. "Platform Reliability". key: Short uppercase key used in ticket display ids (2-10 chars, A-Z + 0-9 only), e.g. "PLAT". Becomes part of the ticket display id like "PLAT-123". description: Optional human-readable description. classification: One of: "software", "operations", "security", "infrastructure", "data", "other". Defaults to "other". owner_user_id: Optional user id of the project owner.

list_project_membersA

List the members of a project (id, user id, role).

Use this to find user ids you can later pass as assignee_user_id when creating or updating tickets in this project.

Args: project_id: The project id.

list_project_issue_typesA

List the issue types defined in a project (id, name, parent_type_id).

Required before calling create_project_ticket — the ticket needs a valid issue_type_id from this list.

Args: project_id: The project id.

list_runbooksA

List all runbooks in the tenant with their lifecycle status and cell count.

get_runbookA

Get a runbook with all its cells. Returns name, status, and each cell's type/target/content preview.

Args: runbook_id: The runbook id to fetch.

create_runbookA

Create a new runbook in draft status. Returns the runbook id.

Args: name: Short, descriptive name (e.g. "Restart failing pods in production"). description: Markdown description of what this runbook does and when to use it. tags: Optional list of tags for categorisation (e.g. ["k8s", "incident"]).

add_cellA

Add a cell to a runbook.

Args: runbook_id: The runbook to add the cell to. cell_type: One of: 'markdown' (documentation), 'shell' (bash script), 'http' (HTTP request). content: The cell content — markdown text, bash script, or HTTP request body. order: Position in the notebook (0-indexed). Cells execute in ascending order. target_type: Execution target — 'k8s', 'ecs', or 'ec2'. Null for markdown cells. target_config: JSON string with target config: k8s: {"namespace": "production", "pod_selector": "app=api"} ecs: {"cluster_arn": "arn:aws:ecs:...", "task_definition": "my-task:5"} ec2: {"instance_id": "i-0abc123def456"}

update_cellA

Update cell content or execution target. Only provided fields change.

Args: runbook_id: The parent runbook id. cell_id: The cell id to update. content: New cell content (leave None to keep current). target_type: New target type — 'k8s', 'ecs', 'ec2', or None. target_config: JSON string with new target config, or None to keep current.

delete_cellA

Remove a cell from a runbook.

Args: runbook_id: The parent runbook id. cell_id: The cell id to delete.

reorder_cellsA

Set the execution order of cells. Provide all cell ids in the desired sequence.

Args: runbook_id: The runbook to reorder. cell_ids: All cell ids in the desired order, e.g. ["c3", "c1", "c2"].

promote_runbookA

Advance the runbook lifecycle: draft -> reviewed -> standard.

Call this when authoring is finished and the runbook is ready for engineer review (draft->reviewed), or when an engineer has approved it as a Standard Operating Procedure (reviewed->standard).

Args: runbook_id: The runbook to promote.

deprecate_runbookA

Mark a runbook as deprecated. Use when a procedure is no longer safe or relevant.

Args: runbook_id: The runbook to deprecate.

list_servicesA

List all services in the tenant catalog (id, name, slug).

create_serviceA

Create a service in the catalog.

Args: name: Display name, e.g. "Payments API". kind: One of service|library|worker|job|frontend|mobile_app|other. language: Primary language, e.g. "python". scm_provider_id: ID of the SCM provider (GitHub, GitLab, etc.) integration. repository_url: Full URL to the source repository. slug: URL-safe id; server generates one from name if omitted. language_version: Language runtime version, e.g. "3.12". default_branch: Default VCS branch (default "main"). description: Optional human-readable description. lifecycle: One of active|deprecated|archived (default "active"). owner_group_id: Optional owning group id. tier: Optional criticality tier — tier1|tier2|tier3. runtime: Optional runtime identifier, e.g. "docker". tags: Optional list of tag strings. links: Optional list of link dicts (e.g. [{"label": "Docs", "url": "..."}]).

update_serviceA

Update a service. Only provided fields change.

Args: service_id: The service id to update. name: New display name. description: New description. kind: New kind — service|library|worker|job|frontend|mobile_app|other. language: New primary language. language_version: New language version. scm_provider_id: New SCM provider integration id. repository_url: New repository URL. default_branch: New default branch. lifecycle: New lifecycle — active|deprecated|archived. owner_group_id: Move ownership to a different group. clear_owner: Set True to remove the owner assignment. tier: New criticality tier — tier1|tier2|tier3. clear_tier: Set True to remove the tier assignment. runtime: New runtime identifier. tags: Replace the tags list entirely. links: Replace the links list entirely. add_environments: List of environment ids to associate with the service. remove_environments: List of environment ids to disassociate from the service.

delete_serviceB

Delete a service from the catalog by id. This cannot be undone.

Args: service_id: The service id to delete.

list_ticketsA

List tickets across the tenant with optional filters.

Filters compose with AND. All are optional; with no filters, returns the most recent tickets up to limit.

Args: service_id: Filter by primary_service_id. assignee_user_id: Filter by assignee. status: One of open / in_progress / done / cancelled. priority: One of low / medium / high / urgent. ticket_type: One of epic / story / task / subtask / bug. parent_ticket_id: Only direct children of this parent. tag: Filter by a single tag. q: Full-text search across title/description. include_affected: When True with service_id, also include tickets where the service appears in affected_services. limit: Max rows (1-200, default 50).

get_ticketA

Get a single ticket's full details + activity counts.

Args: ticket_id: The internal ticket id (NOT the display id like KEY-NNN — use list_tickets first or list_project_tickets to find it, or use get_project_ticket if you have the project key + number).

create_ticketA

Create a SERVICE-LEVEL ticket (not bound to a project).

Use this when the user explicitly wants a service-scoped ticket. For tickets that should live in a project, use create_project_ticket instead — it returns a display id like "KEY-NNN" and supports custom fields.

Args: title: Short summary (1-200 chars). ticket_type: One of epic / story / task / subtask / bug. Default task. description: Optional longer body (markdown). priority: One of low / medium / high / urgent. Default medium. severity: One of minor / major / critical, or None. primary_service_id: Service the ticket is primarily about. parent_ticket_id: Parent ticket id (for subtasks under a story, etc.). assignee_user_id: User id to assign to. start_date: ISO 8601 date string "YYYY-MM-DD". due_date: ISO 8601 date string "YYYY-MM-DD". tags: Optional list of tag strings. affected_service_ids: List of additional service ids affected.

update_ticketA

Update a service-level ticket (PATCH semantics — only provided fields change).

Use this for status transitions, reassignment, priority bumps, etc.

Args: ticket_id: The internal ticket id (NOT the display id). title: New title (1-200 chars). description: New description. status: New status — open / in_progress / done / cancelled. priority: New priority — low / medium / high / urgent. severity: New severity — minor / major / critical or null. assignee_user_id: New assignee user id (pass empty string to unassign? Use null). start_date: ISO date "YYYY-MM-DD". due_date: ISO date "YYYY-MM-DD". tags: New full list of tags (replaces existing). parent_ticket_id: New parent ticket id.

comment_on_ticketA

Add a comment to a ticket.

Args: ticket_id: The internal ticket id. body: The comment body (markdown supported, min 1 char).

link_ticketsA

Create a relationship between two tickets.

Args: ticket_id: The ticket that the link originates from. target_ticket_id: The ticket on the other end of the link. link_type: One of blocks / relates_to / duplicates. Default relates_to.

list_project_ticketsA

List tickets in a project (display id, status, priority, title, assignee).

Args: project_id: The project id (use list_projects to find it).

get_project_ticketA

Get a project ticket by its per-project sequence number.

The display id "KEY-NNN" means: project with that KEY, ticket number NNN. For example "PLAT-42" -> project_id of "PLAT", number=42.

Args: project_id: The project id (NOT the project key — use list_projects). number: The per-project ticket number (the NNN in KEY-NNN).

create_project_ticketA

Create a ticket within a project. Returns a display id like "KEY-NNN".

This is the recommended path for most ticket creation — project tickets get an auto-incremented per-project number and a human-friendly display id. Prerequisites: you need the project_id (from list_projects) and a valid issue_type_id (from list_project_issue_types).

Args: project_id: The project id to create the ticket in. issue_type_id: A valid issue type id for this project. Use list_project_issue_types to get one. title: Short summary (1-200 chars). description: Optional longer body (markdown). priority: One of low / medium / high / urgent. Default medium. severity: One of minor / major / critical, or None. assignee_user_id: User id to assign to (use list_project_members). primary_service_id: Optional service the ticket relates to. parent_ticket_id: Optional parent ticket (for nesting). start_date: ISO date "YYYY-MM-DD". due_date: ISO date "YYYY-MM-DD". tags: Optional list of tag strings. custom_fields: Optional JSON string of a {field_id: value} dict for project-defined custom fields. Use list_project_issue_types first to see which fields exist, e.g. '{"f_abc123": "RCA pending", "f_def456": ["a","b"]}'.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 60 tools

Disambiguation4/5

Most tools are clearly separated by resource and action, and the athena_*/db_* prefixes help partition query tools. The main ambiguity comes from dual ticket paths (create_ticket vs create_project_ticket, get_ticket vs get_project_ticket, list_tickets vs list_project_tickets), but the descriptions are explicit about which to use.

Naming Consistency3/5

The dominant pattern is verb_noun (list_dashboards, create_environment, update_service), but several tools put the domain first (athena_run_query, db_query, athena_cancel) or use 'athena_history' without a verb. Add_panel/add_cell also deviate from the create_* convention, making the set readable but inconsistent.

Tool Count1/5

60 tools is an extreme count for a single MCP server and bundles many unrelated domains—dashboards, Athena, SQL, AWS resources, projects, tickets, runbooks, and services. Even if each tool is individually useful, the combined surface is too heavy for an agent to navigate efficiently.

Completeness3/5

Several domains have solid CRUD coverage, especially tickets, services, dashboards, and runbook cells, but there are notable gaps: no panel update, no runbook update/delete, no project update/delete, no environment group update/delete, and no API to discover datasource_id (needed by add_panel). There is also no user lookup tool, which would help resolve assignee_user_id.

Maintenance

ActivityInactive
ResponsivenessNo issues