IndieML Substance API

io.github.ezchx由 GitHub 帳號 ezchx 發布v0.1.14更新於 Oct 27, 2026

Scores text for substance, depth, and clarity in under 25ms.

已驗證Streamable HTTP可網頁執行資料與分析AI 與機器學習

概覽

AI 產生的概覽

託管的 IndieML Substance API,讓助理在 25 毫秒內為文字的實質內容、深度與清晰度評分,支援單筆與批次。

可以做什麼
  • 為單段文字的實質內容、深度與清晰度評分
  • 一次批次請求最多為 100 筆字串評分
  • 作為 RAG 切塊、代理記憶、提示詞與擷取頁面的快速預篩工具
  • 對文字集合排序與過濾,用於資料集整理或向量資料庫清理
適用情境
適合在呼叫昂貴的大型模型之前做快速低成本的預篩:嵌入前剔除樣板內容、攔截資訊量不足的提示詞、分流工單與回饋,或大規模整理資料集。
執行需求
透過 Streamable HTTP 存取 indieml.app 的遠端端點;需要 IndieML API 金鑰,放在 X-Api-Key 標頭中(向服務方申請)。僅支援 stdio 的用戶端需使用 npx mcp-remote 橋接,需要 Node.js v20 以上並設定 INDIEML_API_KEY 環境變數。
安裝前請注意
需要以 X-Api-Key 標頭傳遞 API 金鑰,請勿寫入共用設定。送出的文字會傳到第三方託管服務評分,避免傳送機密或受監管內容。README 未說明價格與速率限制,高用量前請先確認使用條款。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 IndieML Substance API,將其新增到工作區。
  2. 連接 X-Api-Key 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.ezchx%2Findieml/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "indieml-substance-api": {
      "type": "http",
      "url": "https://indieml.app/mcp/",
      "headers": {
        "X-Api-Key": "<YOUR_API_KEY>"
      }
    }
  }
}

README

IndieML - Substance API

A lightweight, transformer-based API that evaluates text for substance, depth, and clarity in under 25ms while achieving 87% of the accuracy of a full-scale LLM. This package provides REST API, Python SDK, and MCP configuration details to natively connect the hosted Substance API to a wide variety of applications. For more information, including API key requests, please visit IndieML.

REST API

For integrations outside the Python and MCP ecosystems (such as standard OpenAI function calling, custom AI scripts, or raw HTTP requests), the hosted endpoint accepts standard JSON payload requests.

Single Evaluation

cURL

bash
curl -X POST https://indieml.app/v1/score/substance \  -H "X-API-Key: YOUR_API_KEY_HERE" \  -H "Content-Type: application/json" \  -d '{"input_text": "This is a test run."}'

Python

python
import requests
url = "https://indieml.app/v1/score/substance"headers = {    "X-API-KEY": "YOUR_API_KEY",    "Content-Type": "application/json"}payload = {    "input_text": "This is a test run."}response = requests.post(url, json=payload, headers=headers)
if response.status_code != 200:    error_data = response.json()    print(f"HTTP {response.status_code}: {error_data.get('detail')}")else:    print(response.json())

Node.js

javascript
const response = await fetch('https://indieml.app/v1/score/substance', {  method: 'POST',  headers: {    'X-API-KEY': 'YOUR_API_KEY',    'Content-Type': 'application/json'  },  body: JSON.stringify({    input_text: "This is a test run."  })});
if (!response.ok) {  const errorData = await response.json();  console.error(`HTTP ${response.status}:`, errorData.detail);} else {  const data = await response.json();  console.log(data);}

Batch Evaluation

Process up to 100 strings per request.

cURL

bash
curl -X POST https://indieml.app/v1/score/substance/batch \  -H "X-API-KEY: YOUR_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "input_texts": ["This is a test run.", "This is another test run."]  }'

Python

python
import requests
url = "https://indieml.app/v1/score/substance/batch"headers = {    "X-API-KEY": "YOUR_API_KEY",    "Content-Type": "application/json"}payload = {    "input_texts": ["This is a test run.", "This is another test run."]}response = requests.post(url, json=payload, headers=headers)
if response.status_code != 200:    error_data = response.json()    print(f"HTTP {response.status_code}: {error_data.get('detail')}")else:    print(response.json())

Node.js

javascript
const response = await fetch('https://indieml.app/v1/score/substance/batch', {  method: 'POST',  headers: {    'X-API-KEY': 'YOUR_API_KEY',    'Content-Type': 'application/json'  },  body: JSON.stringify({    input_texts: ["This is a test run.", "This is another test run."]  })});
if (!response.ok) {  const errorData = await response.json();  console.error(`HTTP ${response.status}:`, errorData.detail);} else {  const data = await response.json();  console.log(data);}

Python SDK

Installation (requires Python 3.11 or higher)

bash
pip install indieml

Usage

python
from indieml import Substance
# Initialize the APIapi = Substance(api_key="YOUR_API_KEY_HERE")
# Single stringsingle_result = api.score("This is a test run.")print(single_result)
# Array of stringsbatch_result = api.score_batch([    "This is a test run.",     "This is another test run."])print(batch_result)

Node SDK

Installation

bash
npm install indieml

Usage (CommonJS)

javascript
const { IndieML } = require('indieml');
// Initialize the APIconst api = new IndieML({ apiKey: "YOUR_API_KEY_HERE" });
async function run() {  // Single string  const singleResult = await api.score("This is a test run.");  console.log(singleResult);
  // Array of strings  const batchResult = await api.scoreBatch([    "This is a test run.",    "This is another test run."  ]);  console.log(batchResult);}
run().catch(console.error);

Usage (ES Modules / TypeScript)

javascript
/** * Note: This example uses ES Module syntax and top-level await. * To run this file, either: * 1. Save the file with an .mjs extension (e.g., example.mjs) OR * 2. Add "type": "module" to your project's package.json file. */
import { IndieML } from 'indieml';
// Initialize the APIconst api = new IndieML({ apiKey: "YOUR_API_KEY_HERE" });
// Single stringconst singleResult = await api.score("This is a test run.");console.log(singleResult);
// Array of stringsconst batchResult = await api.scoreBatch([  "This is a test run.",  "This is another test run."]);console.log(batchResult);

MCP Server Integration

You can integrate the Substance API into AI coding assistants by routing them to our cloud-native ASGI endpoints.

Cursor, ChatGPT, and Claude Code (Streamable HTTP)

For agents that support native Streamable HTTP / SSE configurations, provide the remote URL and authorization header directly:

json
{  "mcpServers": {    "indieml": {      "type": "http",      "url": "https://indieml.app/mcp/",      "headers": {        "X-API-Key": "YOUR_API_KEY_HERE"      }    }  }}

Claude Desktop (stdio via npx Bridge)

For local Linux, Mac, and Windows clients that require stdio transport, use the npx mcp-remote bridge to route the connection to the cloud endpoint. Node.js v20+ is required. Ensure your OS environment variables include INDIEML_API_KEY.

json
{  "mcpServers": {    "indieml": {      "command": "npx",      "args": [        "-y",        "mcp-remote",        "https://indieml.app/mcp/",        "--header",        "X-Api-Key:${INDIEML_API_KEY}"      ],      "env": {        "INDIEML_API_KEY": "YOUR_API_KEY_HERE"      }    }  }}

Applications & Use Cases

The Substance API is a fast and inexpensive pre-screening tool designed to integrate with your existing classification pipeline. It is specifically designed for high-volume, automated data pipelines.

Machine Facing Applications

RAG Pipelines & Retrieval

Stop paying tokens for noise. Pre-filter scraped pages and document chunks, dropping menus, boilerplate, and stub text before it reaches your embedding model.
LangChain Integration Guide

Agent Memory Filtering

Keep autonomous agent scratchpads clean. Filter tool outputs and intermediate web crawls so the LLM only retains dense facts, preventing context window bloat.

Prompt Gating

Reject low-context user prompts (like "fix my code") before triggering expensive LLM inferences, forcing users to provide useful detail first.

Dataset Curation

Rank and filter large text collections without paying for LLM-as-a-judge. Build fine-tuning sets by keeping high-substance text and dropping filler at scale.

Web Crawling

Drop SEO filler, navigation menus, and repetitive boilerplate from raw HTML crawls before they enter your data ingestion pipelines.

Vector Database Pruning

Scan existing vector databases and remove low-substance embeddings to improve search accuracy and reduce cloud storage costs.

Human Facing Applications

CRM & Support Tickets

Score support tickets and bug reports before a human opens them. Auto-request missing details from vague one-liners and prioritize actionable messages.
Salesforce Integration Guide
Zendesk Integration Guide

User Feedback & Reviews

Separate real signal from "great app" and "it's broken." Score survey responses and route reproducible feedback to Jira, keeping generic noise away from product managers.

Online Forums & Communities

Surface the most substantive answers in communities and social feeds. Automatically bury reactive, low-effort noise to elevate high-quality, thoughtful discussions.

Live Input Coaching

Catch thin submissions at the source. Add IndieML to forms and bug reporters to prompt people for what's missing while they're still typing.

Email & Message Triage

Score inbound lead forms and public-facing email addresses. Flag dense, high-value inquiries for immediate attention while routing empty corporate filler to the archive.

Form & Application Intake

Score grant proposals, vendor requests, or job applications upon submission to ensure human evaluators only spend time reading substantive, high-effort documents.

來源:README.md,提交 ffb75fb

工具

0
SourceWeft 尚未讀取此伺服器的工具。

版本歷史

1
  1. v0.1.14最新Oct 1, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分