Skip to main content
Glama
ilham98

simala-mcp

by ilham98

simala-mcp

A read-only MCP server for trending SIMALA (Analisa Lab) parameters from pkt-ismart-web's production data — SQL Server lab-record index + MongoDB readings. Sibling of ismart-mcp; plugs into my-agent, Claude Code, or Claude Desktop.

What SIMALA is

SIMALA is the lab-analysis system. A parameter is one measurement: a test (spec_uji, e.g. "pH", "NH₃") performed on a sample point (item, e.g. tag P-211 / "Cooling Water"), inside a plant section (bagian) under a lab type (jenis_lab, e.g. "Lab Mutu"). Each parameter is addressed by a composite key:

id_bagian | id_jenis_lab | id_item | id_spec_uji

Related MCP server: TrakSYS MCP Server

Setup

python3.13 -m venv .venv && .venv/bin/pip install -r requirements.txt

(Python ≥3.10 and pymongo==4.10.1 are required — the target MongoDB is 4.0.)

Connect it

Add to mcp.json (my-agent's plug panel: paste this whole block). Credentials default to the values in pkt-ismart-web's SIMALA config; override via env.

{"mcpServers": {
  "simala": {
    "command": "/Users/ilham/Documents/Applications/simala-mcp/.venv/bin/python",
    "args": ["/Users/ilham/Documents/Applications/simala-mcp/server.py"]
  }
}}

Environment (production / beta)

Defaults to production. Set SIMALA_ENV=beta (in the mcp.json env block) to read the beta databases — SQL 12.7.2.145/simala_beta (elogsheet_u) + Mongo 12.7.2.191/simala_beta. Granular SIMALA_SQL_* / SIMALA_MONGO_* env vars still override either environment.

"simala": { "command": "…", "args": ["…"], "env": { "SIMALA_ENV": "beta" } }

Tools

Tool

What it does

list_labs()

Lab types (jenis lab) + plants and their sections, to navigate.

search_parameters(query, plant?, jenis_lab?, limit?)

Find parameters by sample-point tag/description or test name; returns the key for trending.

trend_parameter(key, date_from, date_to, include_unposted?)

[datetime, value] daily series + min/avg/max over a range (≤62 days).

parameter_snapshot(keys[], lookback_days?, include_unposted?)

Latest reading per parameter.

Typical flow: search_parameters("pH", plant="Pabrik 4") → take a keytrend_parameter(key, "2026-06-06", "2026-07-06").

Posted vs draft. By default only posted lab records (IS_POSTING = 1, the official data) are read. Pass include_unposted=true to also see records not yet posted.

Safety

Every SQL path is a parameterized SELECT behind a guard that rejects anything else; there are no write paths. Both target databases are shared production — this server only reads. See FINDINGS.md for the data model and why trending resolves lab-record ids in SQL Server before fetching readings from Mongo by id_analisa_lab (never range-scanning Mongo).

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    D
    maintenance
    An MCP server that provides seamless integration with Claude Desktop for querying and managing timeseries data in GigAPI Timeseries Lake.
    7
    6
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that provides secure, read-only access to the TrakSYS manufacturing analytics platform through entity-based tools and guided investigation prompts. It enables users to interact with manufacturing databases and perform data analysis via natural language.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for read-only LDAP directory operations, enabling search, entry retrieval, schema browsing, and comparison via natural language.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    A read-only MCP server for querying telemetry data from configurable backends. Provides tools to list sources, describe schemas, run bounded queries, and compute aggregates.
    MIT