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 分