Skip to main content
Glama
pietrodileo

IRIS MCP Blueprint

by pietrodileo

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
IRIS_PORTNoSuperServer TCP port9091
FASTMCP_HOSTNoHost for SSE transport127.0.0.1
FASTMCP_PORTNoPort for SSE transport8000
IRIS_HOSTNAMENoIRIS hostlocalhost
IRIS_PASSWORDNoIRIS passwordSYS
IRIS_USERNAMENoIRIS username_SYSTEM
IRIS_WEB_PORTNoManagement Portal / REST APIs port9092
MCP_TRANSPORTNoTransport mode: stdio or ssestdio
IRIS_NAMESPACENoIRIS namespaceUSER

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": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
fetch_dataB

Execute SQL and return results as a table. For DDL/DML with no result set, returns a short status line. Args: ctx: The context of the tool call. sql: The SQL query to execute. parameters: The parameters to pass to the SQL query.

insert_dataC

Insert a single row into a table. Args: ctx: The context of the tool call. table_name: The name of the table to insert the data into. values: The values to insert into the table. table_schema: The schema of the table to insert the data into.

get_tablesC

List all tables in a specific schema. Args: ctx: The context of the tool call. table_schema: The schema of the tables to list.

describe_tableC

Show columns and types for a table. Args: ctx: The context of the tool call. table_name: The name of the table to describe. table_schema: The schema of the table to describe.

create_indexC

Creates a standard index to speed up queries. Args: ctx: The context of the tool call. table_name: The name of the table to create the index on. column_name: The name of the column to create the index on. index_name: The name of the index to create. table_schema: The schema of the table to create the index on.

import_csv_to_irisB

Creates a table and imports data from a CSV string. The first row of the CSV must be the header (column names). All columns will be created as VARCHAR(255) for this blueprint. Args: ctx: The context of the tool call. table_name: The name of the table to import the data into. csv_content: The content of the CSV file to import. table_schema: The schema of the table to import the data into.

export_tableA

Export rows from an existing IRIS table as JSON, CSV, or TXT (pipe-separated).

The result is returned as a single string the caller can preview, copy to a file, or stream to a downstream client. For large tables narrow the result with columns, where, and/or limit to keep responses manageable.

check_globalB

Check if a global exists (e.g., 'MCPData'). Args: ctx: The context of the tool call. global_name: The name of the global to check.

save_globalB

Save a value to a global node. Use subscripts for ^g(1,"a") style paths (e.g. [1, "Prova"]). Args: ctx: The context of the tool call. global_name: The name of the global to save the value to. value: The value to save to the global. subscripts: The subscripts of the global to save the value to.

check_global_contentC

Read a global node (same subscript rules as save_global). Args: ctx: The context of the tool call. global_name: The name of the global to read. subscripts: The subscripts of the global to read.

list_global_subscriptsA

List subscript keys under a global path using the IRIS node iterator (ZORDER-style). Args: ctx: The context of the tool call. global_name: top global without ^ (e.g. BTHo). subscripts: path into the global, e.g. ["DufT", 3] for ^BTHo("DufT",3,... recursive: if True, each line is a full path from the start node; max_depth is how many subscript levels to descend below the starting path (1 = only immediate children). max_depth: how many subscript levels to descend below the starting path (1 = only immediate children). max_nodes: maximum number of nodes to return (default: 2000). include_values: if True, include the values of the nodes.

run_class_methodC

Run an ObjectScript ClassMethod. Args: ctx: The context of the tool call. class_name: The name of the class to run the method on. method_name: The name of the method to run. args: The arguments to pass to the method.

search_codeA

Search for a string across IRIS source documents (Atelier action/search).

Calls GET /api/atelier/<ver>/<ns>/action/search (v2+). Both query and documents are required by the server; missing documents returns HTTP 400.

get_class_sourceA

Read .cls source code using Atelier REST API.

get_active_productionA

Return the name of the currently active Interoperability production on the current namespace.

start_productionA

Start an Interoperability production by class name (must already exist and be compiled).

Calls ##class(Ens.Director).StartProduction(productionName) (single-argument form compatible with the IRIS Native SDK and servers where the two-argument sync overload is not exposed to Python). It does not create the production class; use create_empty_production or deploy a class from source, then call this tool.

stop_productionA

Stop the currently running Interoperability production in this namespace.

Calls ##class(Ens.Director).StopProduction().

create_empty_productionA

Create and compile a new empty Ens.Production subclass in the current namespace.

Uses the Atelier REST API (PutDoc + action/compile) — same web host/credentials as other Atelier tools (IRIS_WEB_PORT, IRIS_ATELIER_API_VERSION).

list_production_itemsB

List the items currently configured in a production on the current namespace.

add_production_itemB

Add a Business Host (Service / Process / Operation) to a production on the current namespace.

remove_production_itemC

Remove a Business Host from a production.

get_production_item_settingsA

List the configured setting overrides on a Business Host (Service / Process / Operation) inside a production.

Only settings explicitly stored on the Ens.Config.Item are returned — settings that still use the class-level defaults are NOT listed (they are not present in item.Settings). The output combines both Host and Adapter targets and is meant as input to update_production_item_settings.

update_production_item_settingsA

Update (or create) one or more setting overrides on an existing Business Host inside a production.

For each (name, value) entry in settings:

  • if the host already has an override with that Name and Target, its Value is overwritten;

  • otherwise a new Ens.Config.Setting is appended with the given Target.

The production is then persisted with SaveToClass + %Save. To make the changes take effect on a running production without a full restart, call update_production afterwards (equivalent to clicking "Update" in the Management Portal).

update_productionA

Apply pending configuration changes to the running production (equivalent to clicking 'Update' in the Management Portal).

Calls ##class(Ens.Director).UpdateProduction(). Only the active production is updated; production_name is reserved for future use and ignored.

register_web_applicationA

Create or update a CSP web application that exposes an HTTP-based Business Service (typically EnsLib.REST.GenericService) to the outside world.

Delegates to the ObjectScript helper because 'Security.Applications' requires switching to the %SYS namespace, which is cleaner to do in ObjectScript than over the Native SDK.

Authentication is set to Unauthenticated for development convenience. Tighten this before going to production.

remove_web_applicationA

Delete a CSP web application by URL path (delegates to ObjectScript).

Prompts

Interactive templates invoked by user choice

NameDescription
analyze-tableCreates a prompt that tells the AI to investigate a table's structure and suggest optimizations. Args: table_name: The name of the table to analyze. schema_name: The name of the schema to analyze.
explore-classCreates a prompt that tells the AI to study a class and suggest a new method for it. Args: query: The name of the class to analyze.
import-csv-workflowA guided workflow for the AI to handle CSV imports securely. Args: table_name: The name of the table to import data into. csv_sample: A sample of the CSV data to import. table_schema: The name of the schema to import data into.
export-tableGuided workflow that helps the AI export an existing IRIS table to JSON, CSV, or TXT. The AI inspects the table first, helps the user pick a sensible scope (full table vs. filtered subset), then calls the 'export_table' tool and previews the result.
search-for-codeCreates a prompt that tells the AI to search for a particular string all across the classes and to analyze the classes that match the research. Args: query: The string to search for.
analyze-table-globals-contentCreates a prompt that tells the AI to extract the globals related to a specified table and show their content. The persistent class is typically f"{table_schema}.{table_name}" when SqlTableName matches the SQL name. Args: table_name: The name of the table to analyze. table_schema: The name of the schema to analyze.
create-rest-bp-endpointGuided workflow that drives the AI through the standard pattern of exposing an InterSystems IRIS Business Process as an HTTP endpoint: Web Application ---> Business Service (EnsLib.REST.GenericService) ---> Business Process

Resources

Contextual data attached and managed by the client

NameDescription
res_versionReturn the system metrics. Args: ctx: The context of the resource call.
res_tables_allReturn every base table across all SQL schemas. Read this resource via ``resource://iris/tables``. To restrict to a single schema, use the template ``resource://iris/tables/{table_schema}`` (e.g. ``resource://iris/tables/SQLUser``). Args: ctx: The context of the resource call.
res_atelier_infoReturn Atelier REST API server info: highest supported API version, IRIS build, available namespaces, and feature flags. Useful to decide which value to set for the `IRIS_ATELIER_API_VERSION` env var. The MCP server's URLs are built as `/api/atelier/<IRIS_ATELIER_API_VERSION>/<namespace>/...`, so picking the highest version reported here unlocks the newest endpoints. Args: ctx: The context of the resource call.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pietrodileo/iris-mcp-blueprint'

If you have feedback or need assistance with the MCP directory API, please join our Discord server