Skip to main content
Glama
gaofeibilly-maker

oriole

Oriole · 黄雀 Motor de Empleo

中文说明 · Arquitectura · Fuentes · Verificación

Convierte la web abierta en un mapa trazable y con revisión previa de fuentes de empleo, no en un montón opaco de listados extraídos.

Oriole es un motor de inteligencia de fuentes de empleo abierto y de ámbito nacional para China. Descubre publicadores públicos de reclutamiento, verifica sus endpoints, exige aprobación humana antes de la recopilación, normaliza los empleos según su lugar de trabajo real y expone el resultado a cualquier LLM a través de 16 herramientas MCP.

Está construido deliberadamente como un motor, no como un sitio web único. Puede ejecutarlo desde la CLI, programarlo a medianoche, incrustar el núcleo determinista en otro servicio Node.js o conectar un modelo compatible con MCP sin entregar a ese modelo sus credenciales.

Lo que está implementado

Capacidad

Implementación

Geografía nacional

Taxonomía determinista de dos niveles para China: 34 regiones de nivel provincial y 365 entradas de prefectura/dependencia directa provincial

Clasificación del lugar de trabajo

Utiliza el lugar de trabajo indicado en el empleo, conserva los empleos con varias ubicaciones, admite filtros por provincia/ciudad y rechaza las filas de solo extranjero.

Descubrimiento de fuentes

Nueve semillas auditadas, una lista de control limitada a 19 empleadores, directorios oficiales, Baidu Search API, Common Crawl URL Index, las 365 tareas de región de segundo nivel y URLs enviadas.

Recopilación estable

Adaptadores de búsqueda pública con límites para Lever, Greenhouse, Ashby y ByteDance/Feishu Recruitment, con rotación de offset persistente, JSON público flexible, JSON-LD, RSS/Atom, Sitemap XML y HTML protegido.

Grafo de fuentes

Relaciones con evidencia entre publicador, fuente, región, punto de entrada, endpoint, canal de descubrimiento y empleo.

Flujo de confianza

candidate → probed → approved/rejected; el descubrimiento y la comprobación nunca aprueban una fuente automáticamente.

Evidencia

Registros de ejecución, resúmenes HTTP, hashes de contenido, artefactos comprimidos de respuestas en crudo, trazabilidad de fuente/empleo y auditorías legibles por máquina.

Interfaz de agente

16 herramientas MCP bilingües sobre JSON-RPC 2.0 NDJSON stdio; negociación moderna 2026-07-28 y heredadas 2025-11-25, 2025-06-18 y 2025-03-26.

Operación diaria

Ejecutor idempotente con fecha de Pekín y programación fluida en GitHub Actions a las 00:00 Asia/Shanghai.

Seguridad

Acceso saliente solo HTTPS, anclaje de DNS a direcciones públicas, defensas contra SSRF, protecciones de redirects y robots, límites de tiempo/tamaño/filas, límites de velocidad y fijación de secretos a un host.

Related MCP server: OpenAI-Compatible MCP Gateway

El modelo de fuentes

Los canales de descubrimiento y las fuentes de empleo tienen funciones distintas:

  • Baidu es un radar de descubrimiento. Cuando está configurado, Oriole llama al endpoint oficial de Qianfan de Baidu y almacena evidencia a nivel de solicitud. Nunca obtienels una página de resultados de Baidu.

  • Common Crawl es un respaldo de archivo/índice sin contraseña para tareas controladas con site:. Es verificación de que las URLs públicas existen; no se trata como un motor de búsqueda de texto completo ni como la fuente definitiva de los empleos.

  • Public directories siembran publicadores públicos y autorizados, tanto nacionales como locales, incluyendo directorios de empleo público nacional, empleo universitario, instituciones públicas, empresas centrales de propiedad estatal y departamentos gubernamentales.

  • Los sitios de los empleadores, las tablas ATS oficiales y las páginas de empleo de los gobiernos son los objetivos de recopilación de larga vida. Una fuente debe superar la comprobación de seguridad y la revisión humana antes de que sus empleos puedan introducirse en el Registro.

  • User submission permite que otro Agente u operador proponga una URL pública, con la misma compuerta de comprobación y revisión.

No se necesita ninguna clave de Baidu para recopilar las nueve semillas de origen previas o para descubrir candidatos del catálogo oficial. La capacidad del proveedor se especifica por detrás de la consulta: el descubrimiento ordinario por palabras clave es solo en Baidu, por lo que esas tareas permanecen visiblemente blocked en status.discoveryBacklog y en las estadísticas de ejecución de descubrimiento cuando Baidu no está disponible. Common Crawl solo puede utilizarse en tareas controladas site:; el trabajo bloqueado nunca se cuenta como completado.

El repositorio público no encierra cero registros de empleo. El comando npm run init importa nueve semillas de fuentes públicas cuidadosamente auditan—objeto de apuntes, incluyendo ByteDance, y una fuente de empleo gubernamental—de modo que un clon limpio tenga objetivos de recopilación funcionales sin publicar una instantánea anticuada o privada. Esto no es aprobación automática de resultados de búsqueda: el manifiesto de semillas es una decisión de confianza revisada y todas las fuentes descubiertas todavía requieren aprobación.

La cobertura es un informe de carencias medible, no una afirmación de captura completa global de empleos. En la lista de control de 19 empleadores, ByteDance es el único destino de arranque revisado; las otras 18 raíces de empleadores comienzan como candidatas no aprobadas y no pueden producir empleos hasta que se comprueban, se verifican y se aprueban.

La recopilación de ByteDance/Feishu está delimitada legalmente a 50 páginas, 5000 filas fusqueables y 24 MB por invocación de fuente. Cuando una invocación no llega al fondo, una ejecución confirmada guarda un cursor con verificacción de generación bajo source.collection.resume; la siguiente parte se refresca una vez la parte inicial y luego continuamente la cola conuna página de solapamiento intencionado. Las escrituras de empleo y el avance del cursor comparten una única transacción atómica del Registro. Antes de cualquiera de las dos, el Registro compara y intercambia la revisión de la fuente leída por el recolector y la generación guardada del cursor; cualquiera de los dos conflictos no escribe ni empleos ni cursor. En vista previa, error o conflicto nunca avanza la posición guardada. Un segmento de cola reanudado permanece pagination.complete: false incluso al cerrar un ciclo de rotación, porque una fuente con offsetsmudables no es una instantánea entre ejecuciones y no puede justificar el cierre de máster. Comprue neighbors la evidencia de recopilación y del Registro por separado: npm run coverage mide el estado de fuente, canal y región y no usa el seguimiento de paginación porcursor.

Vea docs/SOURCES.md para conocer los límites exactos de los proveedores y el catálogo de semillas.

Inicio rápido

Requisitos: Node.js 22.13+. Oriole no tiene dependencias de ejecución y no necesita ningún secreto para inicializarse o recolectar sus fuentes preaprobadas, descubrir desde el catálogo oficial o ejecutar tareas controladas site: de Common Crawl.

git clone https://github.com/gaofeibilly-maker/oriole-job-engine.git
cd oriole-job-engine
npm test
npm run init
npm run status
npm run coverage
npm run regions -- --province-code 420000

Después de init, status debe mostrar 9 fuentes aprobadas y 0 empleos incluidos. Los empleos solo aparecen tras una recopilación real y cometida.

Para realizar una comprobación de solo previsualización y generación de evidencia, no se necesita clave de Baidu, realizar npm run live-source-check. Se validan las URL oficiales de solicitud y se imprime un resumen compacto en lugar de respuestas colosales o descripciones de trabajo. La previsualización lee la ventana correspondiente pero nunca compromete empleos ni avanza un cursor de reanudación guardado. El archivos flu trabajador de GitHub coincide puede ejecutarse manualmente o ponetiquetando un pull request live-source-audit.

Descubra el catálogo oficial incluido sin credencial:

node scripts/huangque/cli.mjs discover \
  --providers official_catalog \
  --force

node scripts/huangque/cli.mjs sources
node scripts/huangque/cli.mjs graph

El descubrimiento crea candidatos; no los convierte silenciosamente en objetivos de recopilación. Compruebe un candidato, inspeccione la evidencia y la revisión actual del Registro, y luego apruebe explícitamente:

node scripts/huangque/cli.mjs probe --source <source-id>

node scripts/huangque/cli.mjs review \
  --source <source-id> \
  --decision approve \
  --reviewer <operator-name> \
  --reason "Official public recruitment source verified" \
  --revision <current-revision> \
  --confirm

node scripts/huangque/cli.mjs collect --source <source-id> --commit
node scripts/huangque/cli.mjs jobs --province-code 420000 --city-code 420100

Todo el estado es local por defecto:

  • .huangque/state.json — Registro atómico portátil;

  • .huangque/artifacts/ — evidencia comprimida y referenciada por contenido;

  • .huangque/latest-audit.json — la última auditoría automática legible por máquina.

Estas rutas se pasan por alto en un repositorio Git y pueden reubicarse mediante variables de entorno.

Conexión de cualquier LLM mediante MCP

Arranque el servidor stdio:

npm run mcp

Ejemplo de configuración del cliente MCP:

{
  "mcpServers": {
    "oriole": {
      "command": "node",
      "args": ["/absolute/path/oriole-job-engine/scripts/huangque/mcp-server.mjs"],
      "env": {
        "HUANGQUE_REGISTRY_PATH": "/absolute/path/oriole-data/state.json",
        "HUANGQUE_ARTIFACT_ROOT": "/absolute/path/oriole-data/artifacts"
      }
    }
  }
}

El servidor expone herramientas para: ejecutar el pipeline, consultar ejecuciones, estado, lago de cobertura de fuentes medible, descubrimiento, envío de fuentes públicas, pruebas de conex, listado de fuentes, listado de empleos, listado de regiones, lectura del grafo, revisión humana, recopilación, trabajo pendiente, auditoría y exportación de proyección portátil.

huangque.list_regions informa de los agregados únicos por empleo a nivel de provincia, a nivel de solo provincia y en cada ciudad de segundo nivel. Un empleo ofrecido explícitamente en dos ciudades de una misma provincia cuenta una vez en el total provincial y una vez en cada ciudad correspondiente.

La aprobación de fuentes a través de MCP está desactivada por defecto. Un operador debe establecer de forma deliberada HUANGQUE_ALLOW_MCP_REVIEW=1; la aprobación por CLI sigue soportada sin debilitar ese límite del lado del servidor.

Descubrimiento opcional con Baidu

Copie la configuración de ejemplo y establezca su clave localmente o como secreto de GitHub Actions. No la incluya nunca en el repositorio.

cp .env.example .env
export HUANGQUE_BAIDU_API_KEY="<your-key>"
node scripts/huangque/cli.mjs discover --providers baidu --max-queries 5

La clave solo se envía a qianfan.baidubce.com. Se rechaza un endpoint personalizado en otro host. El presupuesto diario por defecto es de 40 solicitados y puede reducirse con HUANGQUE_BAIDU_DAILY_BUDGET.

Si Baidu no está configurado, no se detiene la recopilación de fuentes aprobadas. Solo deja bloqueadas explícitamente las tareas de descubrimiento activo por palabras clave; Common Crawl sin contraseñas sigue atendiendo las tareas site: del plan de consulta.

Referencia oficial: Baidu Qianfan AI Search API.

Actualización nacional diaria a medianoche

El flujo de trabajo incluido se ejecuta a las 16:00 UTC, lo que es 00:00 Asia/Shanghai del siguiente día calendario local:

npm run daily

El runner escribe un marcador de finalización de ejecución de fecha en Pekín, de modo que la concurrencia de reintento no duplica la misma ejecución del día, a menos que se indique --force. Programas de GitHub pueden arrancar con unos minutos de retraso; en el control de fecha es el marcado de día calendario, no la cola. Ver docs/SCHEDULING.md.

Grafo de fuentes, no solo una lista

Cada borde del grafo lleva evidencia y marcas de observación. Las relaciones básicas son:

publisher ← published_by — source — covers_region → region
                            │
                            ├─ has_entry_point → public page
                            ├─ has_endpoint → collection endpoint
                            ├─ discovered_via → provider/query/run evidence
                            └─ lists_job → normalized job

Las empresas de publicador y de región se rigen por la última evidencia autorizada de fuentes aprobadas: cuando una identidad de fuente auditada cambia, se eliminan las relaciónes obsoletas published_by y covers_region en lugar de dejarlas como hechos históricos engañosos.

«Grafo completo» aquí significa que cada fuente registrada está representada con las relaciones respaldadas por su evidencia y que cada relación es auditable. No significa que el catálogo finitoa contenga cada puesto de trabajo o cada empleador de toda China; Oriole está diseñado para ampliar y reverificar continuamente ese grafo.

Verificación antes de confiar

npm run verify
npm run audit

La suite de pruebas enfoca normalización, regiones nacionales, manejo de empleos con múltiples ubicaciones, proveedores, rotación de grandes lotes y de prueba, atomicidad y concurrencia del cursor, evidencia en el grafo, retención del Registro, ciclo de vida MCP, defensas SSRF, manejo de robots, propiedad de la fuente e identifici de empleo distinto. La auditoría de ejecución informa por separado si los proveedores externos y la programación publicada de GitHub tienen evidencia de éxito real en el Registro actual. Fixtures y una ejecución manual diaria nunca simulan un proveedor en vivo o un éxito real de GitHub Actions.

Siga la lista de comprobación reproducible en docs/VERIFY.md.

Límites

Oriole maneja fuentes web públicas y no protegidas por acceso. Excluye deliberadamente grupos privados de WeChat, OCR de imágenes, bandejas de entrada de correos electrónicos, listas de capit, de solo login, y otros canales privados. No solicita ni aplica a ningún trabajo en sus nombres ni toma decisiones de empleo. El simple acceso web a una fuente pública no exime del respeto a los términos del sitio, la política robots, sobre licencias de base de datos, obligaciones de privacidad o la ley aplicable. Los responsables de un implementation siguen a su fuente a dichas restricciones.

Estructura del proyecto

data/huangque/              verified public seeds, national query plan, and public catalog
scripts/huangque/           CLI, daily runner, MCP server, deterministic core
tests/                      Node test suite
docs/                       architecture, sources, schedule, verification
.github/workflows/          CI and Beijing-midnight daily update

Las contribuciones son bienvenidas bajo Apache-2.0. Por favor, lea CONTRIBUTING.md y reporte problemas de seguridad a través de SECURITY.md.

Available Tools

16 tools
huangque.audit运行黄雀自审A
Read-onlyIdempotent

运行不变量与外部激活项检查;不会把报告写入任意路径。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly states it will not write reports to any path, which is a valuable behavioral disclosure beyond the readOnlyHint and non-destructive annotations. This addresses a common concern about audit tools that might produce output files. Combined with the annotations (readOnly, idempotent, non-destructive), the agent has a clear safety profile. It doesn't describe what the audit returns or whether it can be run concurrently, but that is partially covered by the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that communicates the tool's purpose and a key behavioral guarantee. There is no wasted text, and critical information (that no report is written) is front-loaded. Excellent for a zero-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With zero parameters, a clear read-only purpose, and an output schema available, the description covers the essential context. The only gap is that it doesn't explain what the audit report contains or how to interpret the response, but the output schema likely handles that. For a simple, self-contained audit tool, this is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema has no properties. Since there are no parameters to describe, the baseline is 4 per the rubric. The description adds no parameter semantics because none exist, which is appropriate. The tool's behavior is fully specified by its name and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool runs invariant and external activation checks, which clearly identifies the purpose as an audit operation. It distinguishes from siblings by referencing '自审' (self-audit) rather than source management or pipeline execution, though it doesn't explicitly name an alternative tool for other audit-like operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is a standalone audit tool with no parameters, suggesting it should be run to check invariants and external activations. It doesn't explicitly state when to use it versus siblings, but the context of '自审' (self-audit) and the sibling list (which includes pipeline and source management) provides enough distinction. No exclusions or alternatives are named, so it's slightly below a perfect 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

huangque.collect_jobs采集已批准来源A

仅从 approved 来源采集、标准化、强键去重和更新时效;commit 默认 false,预览不写岗位库。

ParametersJSON Schema
NameRequiredDescriptionDefault
commitNo
source_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false and destructiveHint=false, but the description clarifies that commit=false means a preview that does not write to the job repository. This adds behavioral transparency beyond annotations by explaining the default behavior and the write path. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one concise sentence that packs key information: scope, operations, default commit behavior, and effect. No wasted words, front-loaded with the essential purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 2 parameters, no required fields, and an output schema exists, the description is moderately complete. It explains the default non-write behavior but omits details like how source_id filters or what the output represents. With no annotations on safety, some additional context on idempotency (idempotentHint=false) would help, but the output schema covers return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 2 parameters (commit, source_id) with zero description coverage. The description mentions commit default but does not explain source_id semantics (e.g., optional filtering). It partially compensates but not fully, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action (collect) with a scope (from approved sources) and lists key behaviors (standardize, dedupe, update timeliness). It distinguishes from siblings like run_pipeline and run_due by highlighting the approved-source restriction. However, it does not explicitly name alternatives, which keeps it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for approved-source collection but does not explicitly state when to use this vs. other tools like run_due or run_pipeline. It mentions commit defaults but no exclusion criteria. The implication is clear but not explicit, so it scores below a 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

huangque.discover_sources发现招聘信息源C

按查询计划通过官方目录、Common Crawl 和已配置的百度官方 API 发现候选;只写候选和证据。

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNo
city_codeNo
providersNo
bucket_idsNo
max_queriesNo
province_codeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations mark readOnlyHint=false and openWorldHint=true, but no destructive hint. The description says '只写候选和证据' (only writes candidates and evidence), implying side effects. It adds that it queries official, Common Crawl, and Baidu API, which is useful. However, it doesn't mention limits, rate limits, or what happens on failure. Description aligns with openWorldHint but doesn't go beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, one sentence, and front-loads the key action. It could be slightly more structured, but it's efficient with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex (6 parameters, multiple providers, writes side effects) yet the description is minimal. Since there is output schema, return values are covered, but missing parameter semantics and usage guidance leave gaps. The description is not complete enough for an agent to use correctly without further inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description does not explain any of the six parameters (force, city_code, providers, bucket_ids, max_queries, province_code). It only mentions the three providers in passing, but doesn't describe their values or semantics. The description fails to compensate for the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool discovers candidate sources via official catalogs, Common Crawl, and Baidu API, but the main verb 'discover' is somewhat vague about the output. Title '发现招聘信息源' matches. It is clear enough that it finds recruitment information sources, but doesn't sharply contrast with sibling tools like probe_source or list_sources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says '按查询计划' (according to query plan) but doesn't explain when to use this tool versus alternatives like probe_source or submit_source. No explicit exclusions or conditions are given, so guidance on when to use this tool is weak.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

huangque.export_hosted_projection导出托管投影B
Idempotent

把完整 portable Registry 确定性压缩为外部托管系统可同步的有界投影,并返回文件路径与截断清单。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds some behavioral detail (deterministic compression, returns file path and truncation list) beyond the annotations, which already indicate idempotent and non-destructive. It does not contradict annotations, but it omits potential side effects like file system writes or resource usage, which could be relevant.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that efficiently conveys the core action and output. There is no fluff or unnecessary detail, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description mentions returning a file path and truncation list, but does not elaborate on what these contain or how they relate to the output schema. For a tool with no input parameters, the description is somewhat self-contained, yet it lacks details about the output structure or potential error conditions, making it slightly incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so schema coverage is complete. The description does not need to explain parameters, and it doesn't invent any. Baseline of 3 is appropriate since there is no parameter information to add.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: deterministic compression of the portable Registry into a bounded projection, with a return of file path and truncation list. This distinguishes it from sibling tools like run_pipeline or audit. However, the term 'hosted projection' is somewhat technical and could be clearer for general use.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given on when to use this tool versus alternatives. It does not describe typical scenarios, prerequisites, or conditions that would make this tool the appropriate choice. The description lacks usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

huangque.get_run查看运行A
Read-onlyIdempotent

按 run_id 读取黄雀运行状态、统计、证据索引和错误。

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the specific information returned (status, stats, evidence index, errors) and is consistent with the readOnly and idempotent annotations. However, it does not mention potential error conditions (e.g., run not found) or side effects, though as a read-only operation these are likely minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, front-loaded with the action and resource, efficiently conveying the tool's purpose and data returned without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read operation with one parameter, the description sufficiently covers the core functionality. It does not explain the output schema or error handling, but these are likely inferred from the read-only nature and the presence of an output schema, making it complete enough for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explicitly states that run_id is used to identify the run ('按 run_id 读取'), giving clear meaning to the parameter beyond the schema's type and minLength. This fully clarifies the parameter's purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool reads run status, statistics, evidence index, and errors by run_id. It uses the verb '读取' (read) and specifies the resource (run) and the data retrieved, making its purpose unambiguous and distinct from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly mention when to use this tool versus alternatives. It only describes what it does without providing conditions, prerequisites, or comparisons to other tools like 'status' or 'audit', leaving usage guidance implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

huangque.get_source_graph读取招聘源图谱 / Read source graphB
Read-onlyIdempotent

分页读取发布主体、来源、地区、入口、端点、发现渠道与岗位之间的有证据关系。 Reads evidence-bearing source graph relations.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
source_idNo
relation_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint, idempotentHint, and destructiveHint. The description adds that it is 'paginated' and returns 'evidence-bearing relations', which is useful context about the nature of the output. However, it does not disclose other behavioral aspects like auth requirements, cursor handling behavior, or any specific limitations. Since annotations provide the core safety profile, the description's extra detail is beneficial but not extensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and to the point. It consists of two short sentences (bilingual) that effectively convey the action and resource. No verbose or redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that the tool has an output schema and involves four optional parameters, the description provides the core idea (reading relations) but lacks explanation of the parameters and pagination logic. It is sufficient for a simple, safe, read-only operation, but for an agent to correctly filter or paginate, more context would be necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no descriptions for any of the 4 parameters (schema coverage 0%). The description does not explicitly explain `cursor`, `limit`, `source_id`, or `relation_type`. Although it lists the relation types that likely correspond to `relation_type` values (e.g., source, region, etc.), it does not explicitly instruct the agent on how to use these parameters. The description fails to compensate for the lack of schema-level documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: '分页读取' (paginated read) with a specific resource: the evidence-bearing source graph relations. It enumerates the entity types involved (发布主体、来源、地区、入口、端点、发现渠道与岗位), which distinguishes it from sibling tools like list_sources or discover_sources, which deal with sources themselves rather than relational data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool vs alternatives. It only states what it does, with no mention of scenarios, exclusions, or explicit comparisons to similar readings (e.g., when to use 'source graph' vs 'list_sources'). This leaves the agent to infer the applicability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

huangque.list_jobs查询岗位库B
Read-onlyIdempotent

分页读取已由批准来源采集的全国标准化岗位,可按省、市筛选。 Lists normalized China jobs with province/prefecture filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
statusNo
city_codeNo
province_codeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is known. The description adds that it reads from an approved source and is paginated, but doesn't mention batch limits or any details about what happens with invalid filters. The description does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, one in Chinese and one in English, both conveying similar information. It's efficient, but the duplication is minor. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complexity is moderate with 5 optional parameters and an output schema. The description covers the core purpose and filters but omits parameter details like status filtering and cursor-based pagination. It's acceptable for a read-only list operation but could be enhanced.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 5 parameters are in the schema, but coverage is 0% in the description. The description only mentions province/prefecture filters, ignoring limit, cursor, and status. However, the schema provides enums and defaults, so the baseline is 3, but the description adds minimal value beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool reads normalized China jobs with province/prefecture filters, using '分页读取' and 'Lists normalized China jobs'. It distinguishes itself from siblings like collect_jobs and list_sources, but could be more explicit about what it doesn't do (e.g., it doesn't collect or mutate jobs).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for querying job data with optional filters but does not explicitly state when to use this tool versus others like collect_jobs or run_pipeline. No exclusionary guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

huangque.list_regions查询全国地区 / List China regionsB
Read-onlyIdempotent

读取黄雀使用的省级—地级二级地区目录和岗位计数。 Returns the deterministic province/prefecture taxonomy and job counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
province_codeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which cover the safety profile. The description adds the deterministic property and the specific content returned, but does not disclose ordering, pagination, or effects of the optional province_code parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two brief sentences with no filler. The description is front-loaded with the action verb and immediately states the resource and returned data, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The high-level purpose is clear and an output schema exists to document return values. However, the lack of any explanation for the optional province_code parameter leaves a significant gap for correct invocation. For a tool with a single optional parameter, this omission is notable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The optional parameter 'province_code' has no description in the schema and is completely absent from the tool description. The agent has no information about its format, meaning, or how it filters the results, making it impossible to invoke the tool with meaningful arguments.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb ('读取' / 'Returns') and names the exact resource: the province/prefecture two-level region directory and job counts. It also specifies the deterministic nature, distinguishing it from sibling tools like list_sources or list_jobs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention exclusions or preferred contexts. It simply states what the tool does without supporting selection decisions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

huangque.list_sources查询来源图谱B
Read-onlyIdempotent

查询持久化来源 Registry;可按生命周期或验证状态过滤。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
city_codeNo
lifecycleNo
province_codeNo
verification_stateNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe read operation. The description adds that it queries a persistent Registry, but does not disclose details like pagination behavior (though cursor is in schema) or whether results are snapshots. Since annotations cover the safety profile, a 3 is appropriate as the description adds minimal behavioral context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that is front-loaded with the main action and resource. It is efficient and easy to scan, though it could include a little more detail without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (a filtered list operation), the lack of an output schema description is fine, but the missing parameter documentation and lack of guidance on pagination make it borderline. The description provides the basic purpose but not enough for an agent to fully understand filtering parameters and pagination behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description fails to explain any parameter semantics beyond mentioning lifecycle and verification_state as filters. The schema has 6 parameters including limit, cursor, city_code, and province_code, but the description does not clarify their purpose or format (e.g., that city_code is a string, or how cursor works). This is a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists persisted sources in a Registry, with filtering by lifecycle or verification state. It identifies the resource (source Registry) and the action (list/query), but does not explicitly distinguish it from sibling tools like get_source_graph or source_coverage, though the name and description imply a different scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions filtering by lifecycle or verification state, which implies when to use (e.g., when needing to browse sources by state). However, it does not explicitly state when not to use it versus alternatives like source_coverage or get_source_graph, nor does it mention any prerequisites or context for when to list sources.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

huangque.probe_source安全探测来源A

对 source_id 或公开 URL 执行 DNS/重定向/robots/大小/超时防护下的真实探测;不会自动批准。

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
source_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds some behavioral details (DNS/redirect/robots protections, no auto-approval) beyond annotations, but does not explain side effects, state changes, or what 'probing' entails in terms of system impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that conveys the core function without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Does not mention return values or output format, and the tool is likely to produce results (e.g., probe outcomes) that the agent would need to understand. Lacks completeness for a full understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description clarifies that source_id and url are alternative inputs, which is not evident from the schema alone. However, it does not define what constitutes a valid source_id or the exact format for URL.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs real probing of source_id or URL with DNS/redirect/robots/size/timeout protections, distinguishing it from sibling tools like list_sources or get_run.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. It mentions not auto-approving, but does not clarify the intended workflow or context, leaving the agent uncertain about appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

huangque.review_source人工审核来源A
Destructive

批准或驳回已探测来源。要求人工确认、审核人、理由和 expected_revision;MCP 端默认禁用,需 operator 显式授权。

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonYes
decisionYes
source_idYes
reviewed_byYes
confirmationYes
expected_revisionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations by noting the authorization requirement and the manual confirmation step. It does not contradict the destructiveHint annotation, as approve/reject implies mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (two sentences) and well-structured, containing only essential information without fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While it covers purpose and some preconditions, it lacks detail on post-action effects, return value, or the meaning of the 'confirmation' parameter, leaving some gaps for a tool with six required parameters and no schema descriptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description partially compensates for the lack of schema descriptions by naming several parameters (reviewer, reason, expected_revision), but leaves others (source_id, decision, confirmation) unexplained or only implicitly covered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function ('approve or reject a discovered source'), which is specific and distinguishes it from sibling tools like collect or submit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear usage context by mentioning manual confirmation, required reviewer, and the fact that it's disabled by default, requiring operator authorization. However, it does not explicitly mention alternatives or contrast with other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

huangque.run_due运行到期任务A

按 cadence 运行到期发现、探测与已批准来源采集;commit 默认 false,只有显式 true 才写岗位库。

ParametersJSON Schema
NameRequiredDescriptionDefault
commitNo
max_probesNo
max_queriesNo
max_collectionsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly discloses the key side-effect behavior: commit defaults to false and only an explicit true writes to the job library. This adds valuable mutation semantics beyond the annotations, which only indicate readOnlyHint=false and destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense sentence that front-loads the core operation and then adds the critical commit guard. Every element earns its place; there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for basic selection and invocation, especially with an output schema present. However, it lacks detail on what "due" means, how the max_* parameters affect execution, and what happens when commit is false beyond not writing to the library.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only explains the commit parameter. The remaining parameters (max_probes, max_queries, max_collections) are left to be inferred from their names and schema ranges, which is insufficient for a low-coverage schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb-resource pairing: it runs due discovery, probing, and approved-source collection by cadence. This clearly distinguishes it from siblings like run_pipeline or discover_sources by naming the exact scope of work.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"按 cadence 运行到期任务" implies the tool is for executing tasks that have become due, but it does not explicitly state when to prefer this over alternatives such as run_pipeline, nor does it provide exclusion criteria. Usage context is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

huangque.run_pipeline运行黄雀流水线C

执行发现→安全探测→候选入来源图谱;新来源不会自动批准。可选采集已批准来源。

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNo
commitNo仅影响已批准来源;默认预览
city_codeNo可选六位地级行政区代码 / optional prefecture code
providersNo发现 Provider;默认全部
bucket_idsNo
max_probesNo
max_queriesNo
province_codeNo可选六位省级行政区代码 / optional province code
collect_approvedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations by stating that new sources are not automatically approved and that collection of approved sources is optional. However, it does not disclose side effects like whether commit=true persists changes, whether it modifies the source graph, or potential long-running behavior, which would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and to the point, using two sentences to convey the pipeline flow and a key policy (no auto-approval). No unnecessary words or redundancy, though it could be slightly more detailed without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 optional parameters and no output schema provided, the description is incomplete. It does not explain the difference between preview and commit modes, the meaning of max_probes/max_queries, or the outcome of the pipeline, leaving significant gaps for an agent to understand the full scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not clarify the meaning of undisclosed parameters such as force, bucket_ids, max_probes, max_queries, or collect_approved. It only hints at 'optional collection of approved sources' which likely maps to collect_approved, but leaves other parameters unexplained, failing to complement the schema where coverage is only 44%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool executes a pipeline with a sequence (discovery → security probing → candidate sources into graph) and notes that new sources are not auto-approved, which distinguishes its purpose from simpler sibling tools like run_due or collect_jobs. However, it could be more explicit about being the main pipeline runner.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not indicate when to use this tool versus alternatives such as run_due or collect_jobs. It lacks conditions for running the pipeline, prerequisites, or typical invocation scenarios, leaving the agent without clear usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

huangque.source_coverage检查来源覆盖缺口 / Inspect source coverage gapsA
Read-onlyIdempotent

按 9 类渠道、19 家有界重点企业、34 个省级与 365 个二级区域计算可审计缺口;不把发现线索冒充已批准来源,也不声称抓全互联网。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the tool's non-mutating, non-exhaustive nature is already signaled. The description adds value by explicitly restricting scope (9 channels, 19 enterprises, 34 provinces, 365 secondary regions) and by warning against misinterpreting results ('不把发现线索冒充已批准来源,也不声称抓全互联网'). This goes beyond the annotations by clarifying the semantic boundary of what the gaps represent (auditable gaps, not approved sources or full internet coverage).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with two clauses, efficiently front-loading the core action (compute gaps) and then adding a critical caveat. It uses compact numeric enumerations to convey scope without wasted words. The only minor weakness is that it doesn't mention any output structure or return format (though an output schema exists), and the Chinese is dense but not overly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has zero parameters and an output schema, so the description doesn't need to document parameters or return values. The description covers purpose, scope dimensions, and interpretive guardrails. Given the tool's complexity (aggregating across multiple dimensions), the description is sufficient to help an agent decide when to call it and what to expect. However, it doesn't mention any specific use cases or integration with other sibling tools like 'audit' or 'discover_sources', which could be helpful but not strictly necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, so the input schema is trivially complete (coverage 100%). With no parameters to document, the description's job is to explain what the computation is based on and what the output means, which it does by listing the fixed dimensions (9 channels, 19 enterprises, etc.) and the caveat about not representing approved or comprehensive findings. This adds semantic meaning beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource combination: 'calculate auditable gaps' across specified dimensions (9 channels, 19 bounded key enterprises, 34 provinces, 365 secondary regions). It does not explicitly name a sibling alternative but clarifies this is about coverage gaps, distinct from tools like discover_sources or audit, implying a review/compute role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it computes gaps by specific categories and acknowledges limitations. It does not explicitly state when to use vs. alternatives, but the specificity (e.g., 'bounded key enterprises' vs. broader sources) implies a scoped analysis, and the second sentence guards against misusing its outputs as approved sources or claiming exhaustiveness, which helps the agent decide if this tool fits the need.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

huangque.status查看黄雀状态A
Read-onlyIdempotent

读取 Registry 版本、来源/岗位/运行统计、到期查询桶和 Provider 配置状态。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds that it reads specific types of information (Registry version, statistics, buckets, provider config), which is useful context. However, it doesn't disclose any potential side effects (though annotations cover this) or what happens if the Registry is unavailable. With annotations covering the safety profile, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that lists the key information the tool provides. It is front-loaded with the verb '读取' and covers the main aspects. It could be slightly more structured (e.g., bullet points), but for a simple status tool, it is appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, an output schema exists, and annotations are comprehensive, the description is sufficient. It lists the main categories of information returned (Registry version, statistics, buckets, provider config), which gives the agent a good idea of what to expect. The output schema likely provides more detail on the return structure, so the description doesn't need to elaborate further.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and the schema coverage is 100% (trivially, since there are no properties). The description doesn't need to explain parameters, but it does clarify what the tool returns (Registry version, statistics, etc.), which adds value beyond the empty schema. Since there are no parameters, the baseline is 4, and the description meets this by providing context on the output.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads Registry version, source/position/run statistics, expiration query buckets, and Provider configuration status. It uses a specific verb ('读取' - read) and resource (Registry status), which distinguishes it from sibling tools like huangque.audit or huangque.get_run. However, it could be more explicit about what '状态' encompasses and how it differs from similar status-related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is a read-only status tool, but it does not explicitly state when to use it versus alternatives. It doesn't mention that it's a quick overview vs. more detailed tools like huangque.audit or huangque.source_coverage. The context signals show it has no parameters, suggesting it's a general status check, but this is not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

huangque.submit_source提交公开来源 / Submit public sourceA

把一个公开招聘 URL 作为候选写入图谱并保留提交证据;不会自动探测、批准或采集。 Adds a public URL as an evidence-backed candidate without automatic approval.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
noteNo
titleNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (write, non-idempotent, non-destructive), the description explicitly states that it does not auto-approve or collect, and that it keeps submission evidence. This adds clear behavioral expectations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, conveying the core action and key limitations in two short sentences. No fluff or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately explains the main action and what it does not do, which covers the essential behavior for a submission tool. It does not mention return values or post-submission effects, but given the simple input schema and absence of an output schema, this is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema lists three parameters (url, note, title) but the description only mentions the URL. No explanation is provided for the optional 'note' or 'title' fields, leaving their purpose and expected content unclear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool submits a public URL as a candidate into the graph with evidence, and distinguishes it from automatic actions like detection or approval. This is a distinct and well-defined purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly guides when to use this tool by stating it does not automatically detect, approve, or collect, implying it is the initial submission step. However, it does not explicitly contrast with sibling tools like 'review_source' or 'probe_source', leaving some ambiguity for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 16 tool updatesv1.1.1
    • First observedhuangque.audit
    • First observedhuangque.collect_jobs
    • First observedhuangque.discover_sources
    • First observedhuangque.export_hosted_projection
    • First observedhuangque.get_run
    • First observedhuangque.get_source_graph
    • First observedhuangque.list_jobs
    • First observedhuangque.list_regions
    • First observedhuangque.list_sources
    • First observedhuangque.probe_source
    • First observedhuangque.review_source
    • First observedhuangque.run_due
    • First observedhuangque.run_pipeline
    • First observedhuangque.source_coverage
    • First observedhuangque.status
    • First observedhuangque.submit_source

TDQS

B3.4/5.0

Scored across 16 tools

Disambiguation4/5

Most tools have distinct purposes, but run_pipeline and run_due both execute workflows and could be confusing. However, descriptions clarify that run_pipeline is a general discovery-probing pipeline, while run_due runs scheduled tasks. Other pairs like discover_sources/probe_source and submit_source/review_source are clearly separated.

Naming Consistency4/5

All tools share the 'huangque.' prefix and mostly follow a verb_noun pattern (e.g., list_sources, collect_jobs, get_run). Exceptions like 'status' and 'source_coverage' use nouns, but they are still intuitive and the overall naming is coherent.

Tool Count4/5

With 16 tools, the set is slightly above the ideal 3-15 range but still well-scoped for a comprehensive job-source management system. Each tool covers a distinct aspect, and no tool feels redundant.

Completeness4/5

The toolset covers the full lifecycle: discovery, submission, probing, review, collection, listing, reporting, and pipeline execution. Minor gaps exist (e.g., no explicit update/delete for sources), but the core workflows are well-supported and agents can work around these limitations.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that exposes 108+ omega-cli OSINT tools for reconnaissance, web analysis, threat intelligence, and reporting, enabling AI assistants to perform comprehensive open-source intelligence tasks.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A custom MCP server with 6 utility tools (file search, file reading, math calculation, JSON formatting, time query, system info) that demonstrates MCP protocol workflow and integrates with LangChain agents.
    -