Skip to main content
Glama
Alpha-Park

genpark-voice-turn-taking-endpoint-detector-skill

Official

genpark-voice-vad

Energy and transcript heuristics for voice turn endpoint detection.

This is a heuristic endpoint detector over precomputed dB energies and a transcript. It does not decode audio, transcribe speech, or run a trained VAD model. Confidence values are heuristic scores, not calibrated probabilities.

Install from the GitHub release

Python 3.9 or newer. The library and stdio MCP server have no runtime dependencies.

python -m pip install https://github.com/Alpha-Park/genpark-voice-turn-taking-endpoint-detector-skill/releases/download/v1.0.1/genpark_voice_vad-1.0.1-py3-none-any.whl

PyPI publication is pending account setup. The intended PyPI project is genpark-voice-vad; do not assume pip install genpark-voice-vad is available until the project is published.

Related MCP server: genpark-realtime-voice-turn-taking-orchestrator-skill

Python usage

from genpark_voice_vad import VoiceTurnTakingEndpointDetector
client = VoiceTurnTakingEndpointDetector()
print(client.run_benchmark_turn_detection())

MCP stdio configuration

After installing the wheel, configure your MCP client with the installed command:

{
  "mcpServers": {
    "genpark-voice-vad": {
      "command": "genpark-voice-vad",
      "args": []
    }
  }
}

If the command is not on PATH, use its absolute path or python -m genpark_voice_vad with the same interpreter where you installed the wheel. The GitHub release also contains a .mcpb bundle for clients supporting desktop extensions. That bundle requires a Python 3.9+ interpreter on PATH; it bundles the server source.

Available tools: analyze_turn_status, calibrate_acoustic_thresholds, predict_semantic_closure, run_benchmark_turn_detection. tools/list returns required arguments and JSON schemas. Each MCP process holds its own state. Benchmark tools use isolated instances.

Development

python -m unittest discover -s tests
python -m pip install mcp
python tests/check_mcp.py
python -m pip install build twine
python -m build
python -m twine check dist/*

python mcp_server.py --test runs the deterministic example; it is not a protocol conformance test. The MCP client check exercises initialize, tools/list, tools/call and ping over stdio.

Distribution

GitHub source and release artifacts are the primary distribution until PyPI is configured. Registry submissions are tracked separately; a manifest is not proof of registry acceptance. See PUBLISHING.md for the repeatable PyPI workflow.

MIT license. Maintained by GenPark.

Available Tools

4 tools
analyze_turn_statusD

analyze turn status

ParametersJSON Schema
NameRequiredDescriptionDefault
frame_energies_dbYes
elapsed_silence_msYes
transcript_fragmentYes

TDQS

D1.3/5.0
Behavior1/5

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

With no annotations, the description carries the full burden of behavioral disclosure, and it provides none. It says nothing about authorization, cost, latency, side effects, or what the analysis returns.

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

Conciseness2/5

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

It is short, but the brevity reflects under-specification rather than disciplined conciseness. There is no structure, front-loading, or meaningful content to compress.

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

Completeness1/5

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

For a 3-required-parameter tool with no annotations and no output schema, the description is completely inadequate. An agent has no way to know what inputs to prepare or what the tool returns.

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?

All three parameters (frame_energies_db, elapsed_silence_ms, transcript_fragment) have 0% schema description coverage and the description adds no explanation of their meaning, units, or expected formats. The description fully fails to compensate for the schema gap.

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

Purpose2/5

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

The description 'analyze turn status' merely restates the tool name in lowercase, adding no specificity about what is analyzed (speech turns? silence? conversation state?) or what the analysis produces. It is a tautology rather than a stated purpose.

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

Usage Guidelines1/5

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

There is no indication of when to use this tool versus the siblings (calibrate_acoustic_thresholds, predict_semantic_closure, run_benchmark_turn_detection) or when not to. No context, prerequisites, or alternatives are given.

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

calibrate_acoustic_thresholdsD

calibrate acoustic thresholds

ParametersJSON Schema
NameRequiredDescriptionDefault
ambient_frames_dbYes

TDQS

D1.3/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing about side effects, whether calibration mutates state, what permissions are needed, or how the ambient frames are consumed. The four-word description leaves every behavioral question unanswered.

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

Conciseness2/5

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

The text is short, but its brevity reflects under-specification rather than tight writing. It is front-loaded only because there is nothing to front-load.

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

Completeness1/5

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

A one-parameter tool with no annotations and no output schema still needs to explain the input's meaning and the operation's effect; the description provides neither. It is entirely inadequate for correct invocation.

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 single required parameter 'ambient_frames_db' has 0% schema description coverage, and the description contributes no meaning about units, expected array length, or how the frames inform calibration. Nothing compensates for the documentation gap.

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

Purpose2/5

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

The description is a verbatim lowercase restatement of the tool name 'calibrate_acoustic_thresholds' and adds no specificity about what is being calibrated or against what. It gives no way to distinguish this from siblings like analyze_turn_status or run_benchmark_turn_detection.

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

Usage Guidelines1/5

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

There is no indication of when this tool should be used, what preconditions apply, or how it differs from the sibling tools. An agent has no basis to choose it over its siblings.

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

predict_semantic_closureD

predict semantic closure

ParametersJSON Schema
NameRequiredDescriptionDefault
transcript_fragmentYes

TDQS

D1.7/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure, and it discloses nothing. It does not state what a 'semantic closure' prediction returns, whether it is a classification or score, latency implications, or any side effects.

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

Conciseness2/5

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

The description is only three words, but this is under-specification rather than conciseness. It is front-loaded only in the trivial sense that there is nothing else to say.

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

Completeness1/5

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

For a tool with an undocumented required parameter, no annotations, and no output schema, the description is completely inadequate. An agent cannot determine what the tool returns or when to invoke it.

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 sole required parameter, transcript_fragment, is never mentioned in the description. The parameter name is somewhat self-evident as a string input, but the description adds zero meaning about expected content, length, or format.

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

Purpose2/5

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

The description is a verbatim restatement of the tool name, 'predict semantic closure', with no added explanation of what 'semantic closure' means or what is actually predicted. It gives no way to distinguish this tool from siblings like analyze_turn_status or run_benchmark_turn_detection.

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?

There is no guidance on when to use this tool versus the sibling analysis/benchmark tools, nor any stated preconditions. The description provides no context that would route an agent here rather than to analyze_turn_status.

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

run_benchmark_turn_detectionC

run benchmark turn detection

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2/5.0
Behavior1/5

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

With no annotations, the description carries the full burden of behavioral disclosure, and it provides none. It does not say whether the benchmark is read-only, whether it is expensive/long-running, what it measures, or what happens as a result of running it.

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

Conciseness2/5

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

It is short, but this is under-specification rather than conciseness — a single four-word fragment that does not earn its place by conveying any actionable information. There is no front-loaded purpose statement beyond the name itself.

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

Completeness1/5

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

For a tool with no annotations, no output schema, and no parameter documentation, the description must explain what the benchmark does and what the agent gets back; it does neither. An agent has no basis to decide when or why to invoke it.

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 takes zero parameters, so there is nothing for the description to clarify beyond schema; per the scoring baseline for parameterless tools, a 4 is appropriate. No parameter meaning is missing.

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

Purpose2/5

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

The description merely restates the tool name with no added specificity: it does not say what kind of benchmark, what data it runs against, or what 'turn detection' means here. It also fails to distinguish itself from siblings like analyze_turn_status or predict_semantic_closure, all of which operate in the same turn-analysis domain.

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?

There is no indication of when to use this benchmark versus the sibling diagnostic tools, nor of any prerequisites, inputs, or intended context. At best the word 'benchmark' weakly implies an evaluation/measurement scenario, but nothing is stated explicitly.

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. 4 tool updatesv1.0.1
    • First observedanalyze_turn_status
    • First observedcalibrate_acoustic_thresholds
    • First observedpredict_semantic_closure
    • First observedrun_benchmark_turn_detection

TDQS

C2.5/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a clearly distinct action: analyze turn status, calibrate thresholds, predict semantic closure, and run benchmarks. There is no overlapping purpose or ambiguous boundary between them.

Naming Consistency5/5

All names follow a consistent snake_case verb_noun pattern (analyze_, calibrate_, predict_, run_). The convention is predictable and easy to parse.

Tool Count5/5

Four tools is well-scoped for a focused endpoint-detection skill, covering analysis, calibration, prediction, and benchmarking without bloat.

Completeness4/5

The surface covers core operations: status analysis, threshold calibration, semantic closure prediction, and benchmarking. A minor gap exists for real-time streaming detection or explicit audio input handling, but agents can work around it.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers