{"name":"io.github.juliu1980/formlab-mcp","slug":"juliu1980-formlab-mcp","title":null,"description":"Read-only MCP for FormLab — talk to your local lab notebook via Claude. Data stays local.","url":"https://mcp.market/server/juliu1980-formlab-mcp","rating":null,"grade":"C","score":65,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":3,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/juliu1980/FormLab","website":"https://formvix.com","version":"0.1.7","remotes":[],"packages":[{"registryType":"npm","identifier":"formlab-mcp","version":"0.1.7","runtimeHint":"npx","transport":{"type":"stdio"},"packageArguments":[{"description":"Absolute path to a FormLab export JSON file (Data → Export JSON in the FormLab UI).","isRequired":true,"format":"filepath","value":"/path/to/formlab-export.json","type":"positional","name":"exportPath"}]}],"tools":[{"name":"compare_formulations","description":"Compare two or more formulations side-by-side on the same set of leaf ingredients (flattened wt-%). Returns one row per ingredient with each formula's wt-% in its own column. Useful for \"what's different between Formula A and Formula B\" questions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"find_by_smarts","description":"Find every ingredient whose SMILES contains the given SMARTS substructure pattern. Requires RDKit-JS (optional dependency); install with `npm install @rdkit/rdkit` in the mcp folder if you get a \"not installed\" error.","write_action":false,"price_micros":0,"input_schema":null},{"name":"find_failures","description":"Pareto-style failure analysis: which test parameters fail their acceptance criteria most often, and on which samples / formulations. Returns ranked list of (parameter, failureCount, failureRate, exampleFailures).","write_action":false,"price_micros":0,"input_schema":null},{"name":"find_similar_formulations","description":"Find formulations whose flattened composition contains a given ingredient (by name or id) above a threshold wt-%. Useful for \"what other formulas use silicone oil at ≥5%\" queries. Returns ranked by wt-% descending.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_batch","description":"Get full details for a single batch including its actual composition (as-prepared, when logged), child samples, lineage (parent / sub-blend parents), and inventory consumption note. Accepts internal id or UID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_coverage_matrix","description":"Coverage map: which formulations have been tested on which parameters. Returns counts per (formulation × parameter) cell so the LLM can answer \"what's untested\" or \"what's been measured many times\" questions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_doe_matrix","description":"Build a Design-of-Experiments style pivot matrix: rows = formulations (or samples / batches / tests), columns = composition wt-% per ingredient + aggregated test-parameter values. Same shape as the FormLab DOE Matrix view. Returns CSV when format=csv (default) for compact LLM consumption, or structured JSON when format=json.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_formulation","description":"Get full details for a single formulation including its composition (raw rows AND flattened wt-% leaves with sub-formulas expanded), step procedure, and recent batches. Accepts either internal id or UID (e.g. FORM-001).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_ingredient","description":"Get full details for a single ingredient including stock movements, formulations using it, and stock-on-hand. Accepts internal id or UID (e.g. ING-001).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_sample","description":"Get full details for a single sample including its actual variant composition, all test results bound to it, blend lineage, and storage info. Accepts internal id or UID (e.g. SAMP-0001).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_test_result","description":"Get full details for a single test result report including every measurement's value, unit, type, and acceptance criteria. Accepts internal id or UID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_batches","description":"List batches (production / lab-prep events), optionally filtered by formulation, status, or origin-only (hides batches derived from other batches). Returns metadata; use get_batch for the full consumption ledger and samples.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_formulations","description":"List formulations (recipes) in the FormLab database, optionally filtered by status, project, family, tag, or name pattern. Returns one row per formula with key metadata. Use get_formulation for the full composition.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_ingredients","description":"List ingredients (raw materials) in the FormLab library, optionally filtered by family, supplier, or name pattern. Returns metadata; use get_ingredient for full details.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_samples","description":"List samples (physical specimens), optionally filtered by batch, formulation, status, or origin (which batch they came from). Returns metadata; use get_sample for tests and variant composition.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_test_results","description":"List test result reports, optionally filtered by sample, parameter, date range, or lab. Returns metadata + parameters tested. Use get_test_result for full measurement values.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":65,"grade":"C","scanned_at":"2026-09-27T12:17:32.839Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T12:17:32.935Z","components":{"code":{"score":25,"max":25,"notes":["8 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":3,"max":15,"notes":["repository not readable: repo not found"]},"identity":{"score":2,"max":10,"notes":["no repository or website to verify"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"formlab-mcp","version":"0.1.7","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":1,"publishedAt":"2026-06-01T13:15:12.383Z","repositoryUrl":"git+https://github.com/juliu1980/FormLab.git"}],"repo":{"found":false,"owner":"juliu1980","repo":"FormLab","error":"repo not found"},"icon":{"url":"https://formvix.com/favicon.svg?v=d793e41e8b","source":"site"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":"MIT","lastPushAt":null,"score":3}}}},"grade_history":[],"reviews":[]}