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

Capabilities

Features and capabilities supported by this server

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