ilham98

simala-mcp

Community ilham98
Updated

simala-mcp

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

What SIMALA is

SIMALA is the lab-analysis system. A parameter is one measurement: atest (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 parameteris addressed by a composite key:

id_bagian | id_jenis_lab | id_item | id_spec_uji

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). Credentialsdefault 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_* envvars 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 recordsnot yet posted.

Safety

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

MCP Server · Populars

MCP Server · New

    PxyUp

    Fitter — web data for AI agents

    New way for collect information from the API's/Websites

    Community PxyUp
    kayhendriksen

    foehn

    Download MeteoSwiss Open Government Data — weather stations, radar, hail, forecasts and climate series — via Python API, CLI, or MCP server, as DataFrames, Parquet, xarray Datasets or Zarr stores

    Community kayhendriksen
    mldsveda

    pyscrappy

    All-in-one Web Scrapper for Python

    Community mldsveda
    ihuzaifashoukat

    x-use

    Browser-native AI agents for X (Twitter): multi-account, MCP-ready, no X API key required.

    Community ihuzaifashoukat
    hongnoul

    hwatu

    Visual verification browser for AI coding agents: daemon-based WebKitGTK, real rendering, ~13ms window spawn

    Community hongnoul