# StudioSphere Pulse — Audio Intelligence

> Free licensed loops and authorized audio analysis: BPM, key, waveform. Estimate before paid use.

- name: space.studiosphere/pulse
- version: 1.0.3
- connection class: R0 (autonomous)
- trust: 96/100
- quality: 72/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/space.studiosphere%2Fpulse
- tools: https://api.protogrid.dev/v1/servers/space.studiosphere%2Fpulse/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "pulse": {
      "type": "http",
      "url": "https://mcp.studiosphere.space/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 85
- drivers: +repository +dns-namespace +website +reachable +uptime-100% +updated-8d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 72/100 (needs work)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 2 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 10 of 10 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 2,799 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 21 tool changes in 30 days
- fail `stability.rug_pull`: 4 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 10, about 2,799 tokens to load them all
- tool set hash: 84518fe7589073c3ae4550bea9dbfc12
- tools last changed: 2026-10-13T03:59:06.490Z
- badge: [![protogrid quality](https://protogrid.dev/badge/space.studiosphere/pulse.svg)](https://protogrid.dev/servers/space.studiosphere/pulse)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-13 `get_job_status` changed (description, outputSchema)
  - before: Resume a saved analysis job anonymously, including after interrupted Checkout or reconnection. Read continuation for human payment, bounded polling, result review or support. Preserve job_id; never create a replacement purchase to resume it. Checkout refund_status_source=local_ledger reflects durable Pulse reconciliation at refund_checked_at, not a fresh provider query; unconfirmed or needs_review must not be treated as a completed refund. Analysis cost is distinct from net payment. Completed/partial status and cost fields do not prove payment or refund settlement. Terminal Checkout result pages show billing separately; during recovery use the optional receipt API on demand; receipt_api_url is a separate on-demand read, not another MCP tool. Returns available results and provenance.
  - after: Resume a saved analysis job anonymously, including after interrupted Checkout or reconnection. Read continuation for human payment, bounded polling, result review or support. Preserve job_id; never create a replacement purchase to resume it. Checkout refund_status_source=local_ledger reflects durable Pulse reconciliation at refund_checked_at, not a fresh provider query; unconfirmed or needs_review must not be treated as a completed refund. Analysis cost is distinct from net payment. Completed/partial status and cost fields do not prove payment or refund settlement. Terminal Checkout result pages show billing separately; during recovery use the optional receipt API on demand; receipt_api_url is a separate on-demand read, not another MCP tool. Returns available results and provenance. Usable completed/partial results can include studio_notes: ready-to-save project notes with review warnings and failed tools. Notes are analysis snapshots, not payment/refund receipts; keep private job references and preserve review context.
- 2026-10-13 `estimate_cost` changed (outputSchema)
- 2026-10-12 `request_payment_link` changed (description, inputSchema)
  - before: Create anonymous one-off Stripe Checkout; no Pulse account or API key required. First read estimate_cost.analysis_options.checkout for admission minimum and billing guidance. Obtain explicit human approval to create the link and confirm a lawful basis for the audio; one rights confirmation can cover a requested batch/folder/project. Save job_id, payment_url and continuation.review_url privately; a lost Checkout link requires support, not a replacement purchase. Present payment_url and the upfront charged_display when returned for human review/payment. A reused link may omit charge fields; review its hosted amount rather than treating cost_display as the charge. Analysis begins automatically after payment; poll get_job_status with job_id. If estimate_pricing_changed is returned, get a fresh free estimate and new explicit approval. Never silently retry analysis or purchase. Actual host compatibility remains untested.
  - after: Create anonymous one-off Stripe Checkout; no Pulse account or API key required. First read estimate_cost.analysis_options.checkout for admission minimum and billing guidance. Obtain explicit human approval to create the link and confirm a lawful basis for the audio; one rights confirmation can cover a requested batch/folder/project. Save job_id, payment_url and continuation.review_url privately; a lost Checkout link requires support, not a replacement purchase. Present payment_url and the upfront charged_display when returned for human review/payment. A reused link may omit charge fields; review its hosted amount rather than treating cost_display as the charge. Analysis begins automatically after payment; poll get_job_status with job_id. If estimate_pricing_changed is returned, get a fresh free estimate and new explicit approval. Never silently retry analysis or purchase. Below-admission quotes may offer minimum_charge_offer: show its upfront estimate and minimum final cost, then obtain explicit acceptance before passing accept_minimum_charge:true and max_upfront_amount_cents equal to the approved upfront ceiling. Never infer consent from rights confirmation. An exceeded cap needs fresh human review, not an automatic retry. If an existing Claude connector is missing accept_minimum_charge (boolean) or max_upfront_amount_cents (integer), refresh its tools list and start a fresh conversation using that same connector, preserving its URL/key/approval permissions and the original saved job/payment link. Stop if fields remain missing; never create a replacement purchase or new key for recovery. Two scoped existing-connector Claude Checkout workflows, including minimum-charge acceptance, were validated; anonymous initialization, OAuth, trial/banked workflows, other hosts and live cap rejection are not certified.
- 2026-10-12 `estimate_cost` changed (outputSchema)
- 2026-10-12 `get_job_status` changed (description, outputSchema) **meaning changed**
  - before: Check the status and results of an analysis job. Poll after analyze_track returns job_id, or after the user pays via request_payment_link. Returns full results when status=completed.
  - after: Resume a saved analysis job anonymously, including after interrupted Checkout or reconnection. Read continuation for human payment, bounded polling, result review or support. Preserve job_id; never create a replacement purchase to resume it. Checkout refund_status_source=local_ledger reflects durable Pulse reconciliation at refund_checked_at, not a fresh provider query; unconfirmed or needs_review must not be treated as a completed refund. Analysis cost is distinct from net payment. Completed/partial status and cost fields do not prove payment or refund settlement. Terminal Checkout result pages show billing separately; during recovery use the optional receipt API on demand; receipt_api_url is a separate on-demand read, not another MCP tool. Returns available results and provenance.
- 2026-10-12 `request_payment_link` changed (description, outputSchema) **meaning changed**
  - before: Generate a one-time Stripe payment page for users without a Pulse account. Before calling, you MUST confirm with the user that they have a lawful basis to submit this audio for analysis; for a user-requested batch/folder/project, one confirmation can cover that scope. Present the payment_url to the user as a link. Analysis begins automatically after payment. Poll get_job_status with the returned job_id. If processing or payment returns estimate_pricing_changed, get a fresh free estimate with estimate_cost, present the new price, and wait for explicit user approval before processing or payment. Never silently retry analysis or purchase.
  - after: Create anonymous one-off Stripe Checkout; no Pulse account or API key required. First read estimate_cost.analysis_options.checkout for admission minimum and billing guidance. Obtain explicit human approval to create the link and confirm a lawful basis for the audio; one rights confirmation can cover a requested batch/folder/project. Save job_id, payment_url and continuation.review_url privately; a lost Checkout link requires support, not a replacement purchase. Present payment_url and the upfront charged_display when returned for human review/payment. A reused link may omit charge fields; review its hosted amount rather than treating cost_display as the charge. Analysis begins automatically after payment; poll get_job_status with job_id. If estimate_pricing_changed is returned, get a fresh free estimate and new explicit approval. Never silently retry analysis or purchase. Actual host compatibility remains untested.
- 2026-10-12 `estimate_cost` changed (description, outputSchema) **meaning changed**
  - before: Estimate the cost to analyze an audio file before committing. Always call this first. Returns an estimated cost in dollars, a job_estimate_id and expires_at. Review the estimate before spending; final cost depends on measured duration and completed analysis. Free — never charged. If processing or payment returns estimate_pricing_changed, get a fresh free estimate with estimate_cost, present the new price, and wait for explicit user approval before processing or payment. Never silently retry analysis or purchase.
  - after: Estimate audio analysis cost anonymously and free before committing. Read analysis_options for eligible anonymous one-off Checkout, trial duration fit and key-based banked-token use; these do not verify balance or trial entitlement. Eligible quotes can include checkout.upfront_payment_estimate from the current charge builder; this is not a reserved price or a saved-link charge. Review the hosted amount before payment. Returns estimated dollars, job_estimate_id and expires_at. Review the estimate before spending; final cost depends on measured duration and completed analysis, and Checkout can collect a buffered amount with refund thresholds. If processing or payment returns estimate_pricing_changed, get a fresh free estimate, present the new price, and wait for explicit user approval before processing or payment. Never silently retry analysis or purchase.
- 2026-10-10 `estimate_cost` changed (outputSchema)
- 2026-10-09 `analyze_track` changed (inputSchema)
- 2026-10-09 `estimate_cost` changed (description)
  - before: Get the exact price to analyze an audio file before committing. Always call this first. Returns cost in dollars and a job_estimate_id valid for 30 minutes. Free — never charged. If processing or payment returns estimate_pricing_changed, get a fresh free estimate with estimate_cost, present the new price, and wait for explicit user approval before processing or payment. Never silently retry analysis or purchase.
  - after: Estimate the cost to analyze an audio file before committing. Always call this first. Returns an estimated cost in dollars, a job_estimate_id and expires_at. Review the estimate before spending; final cost depends on measured duration and completed analysis. Free — never charged. If processing or payment returns estimate_pricing_changed, get a fresh free estimate with estimate_cost, present the new price, and wait for explicit user approval before processing or payment. Never silently retry analysis or purchase.

Full history: https://api.protogrid.dev/v1/servers/space.studiosphere%2Fpulse/changes

## Remotes

- https://mcp.studiosphere.space/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (10)

- `analyze_track`: Run audio analysis on a public audio URL. Requires estimate_cost to be called first (job_estimate_id). Requires PULSE_API_KEY. Before calling, you MUST confirm with the user that they have a lawful basis to submit this audio for analysis. For a user-requested folder, project, playlist, or batch, one confirmation can cover every track in that scope. Returns job_id — poll get_job_status for results. If processing or payment returns estimate_pricing_changed, get a fresh free estimate with estimate_cost, present the new price, and wait for explicit user approval before processing or payment. Never silently retry analysis or purchase.
- `estimate_cost`: Estimate audio analysis cost anonymously and free before committing. Read analysis_options for eligible anonymous one-off Checkout, trial duration fit and key-based banked-token use; these do not verify balance or trial entitlement. Eligible quotes can include checkout.upfront_payment_estimate from the current charge builder; this is not a reserved price or a saved-link charge. Review the hosted amount before payment. Returns estimated dollars, job_estimate_id and expires_at. Review the estimate before spending; final cost depends on measured duration and completed analysis, and Checkout can collect a buffered amount with refund thresholds. If processing or payment returns estimate_pricing_changed, get a fresh free estimate, present the new price, and wait for explicit user approval before processing or payment. Never silently retry analysis or purchase.
- `get_job_status`: Resume a saved analysis job anonymously, including after interrupted Checkout or reconnection. Read continuation for human payment, bounded polling, result review or support. Preserve job_id; never create a replacement purchase to resume it. Checkout refund_status_source=local_ledger reflects durable Pulse reconciliation at refund_checked_at, not a fresh provider query; unconfirmed or needs_review must not be treated as a completed refund. Analysis cost is distinct from net payment. Completed/partial status and cost fields do not prove payment or refund settlement. Terminal Checkout result pages show billing separately; during recovery use the optional receipt API on demand; receipt_api_url is a separate on-demand read, not another MCP tool. Returns available results and provenance. Usable completed/partial results can include studio_notes: ready-to-save project notes with review warnings and failed tools. Notes are analysis snapshots, not payment/refund receipts; keep private job references and preserve review context.
- `get_open_loop`: Get a released sample’s metadata, exact licence, attribution, preview and WAV download URLs. Free; no account or tokens required. Keep attribution when using the sample in a song.
- `get_token_balance`: Check the banked token balance for the authenticated Pulse account. Requires PULSE_API_KEY.
- `list_token_packs`: List the available Pulse token packs (tier label, token count, price). Use before purchase_token_pack to show options to the user.
- `purchase_token_pack`: Create a Stripe Checkout session for a Pulse token pack. Returns payment_url — DO NOT submit it programmatically; surface it to the user so they can complete payment in their browser. Once paid, banked tokens are credited automatically. Requires PULSE_API_KEY.
- `request_payment_link`: Create anonymous one-off Stripe Checkout; no Pulse account or API key required. First read estimate_cost.analysis_options.checkout for admission minimum and billing guidance. Obtain explicit human approval to create the link and confirm a lawful basis for the audio; one rights confirmation can cover a requested batch/folder/project. Save job_id, payment_url and continuation.review_url privately; a lost Checkout link requires support, not a replacement purchase. Present payment_url and the upfront charged_display when returned for human review/payment. A reused link may omit charge fields; review its hosted amount rather than treating cost_display as the charge. Analysis begins automatically after payment; poll get_job_status with job_id. If estimate_pricing_changed is returned, get a fresh free estimate and new explicit approval. Never silently retry analysis or purchase. Below-admission quotes may offer minimum_charge_offer: show its upfront estimate and minimum final cost, then obtain explicit acceptance before passing accept_minimum_charge:true and max_upfront_amount_cents equal to the approved upfront ceiling. Never infer consent from rights confirmation. An exceeded cap needs fresh human review, not an automatic retry. If an existing Claude connector is missing accept_minimum_charge (boolean) or max_upfront_amount_cents (integer), refresh its tools list and start a fresh conversation using that same connector, preserving its URL/key/approval permissions and the original saved job/payment link. Stop if fields remain missing; never create a replacement purchase or new key for recovery. Two scoped existing-connector Claude Checkout workflows, including minimum-charge acceptance, were validated; anonymous initialization, OAuth, trial/banked workflows, other hosts and live cap rejection are not certified.
- `search_open_loops`: Find released original synthesis kits and individually auditioned source samples by keyword, pack, BPM, key and licence. Automated checks are not listening review. Free; no account or tokens required. Source tags are creator hints. Preserve attribution when required and follow each sample’s licence.
- `start_trial`: Start a temporary, email-free Pulse trial for one URL analysis. Read trial_policy and trial_allowance for the actual duration cap and remaining attempts; an existing trial key may have a lower cap. One completed/partial analysis consumes the allowance regardless of remaining tokens. A failed analysis may retry only when attempts remain. No Stripe Checkout session is created. Store the returned private API key in the client or a trusted local environment; never repost it in logs, screenshots, shared chats or issues. Confirm rights, permission, lawful access, or another legal basis before analysis. The original CC0 demo is https://pulse.studiosphere.space/assets/pulse-demo.mp3 (180 seconds); use it only if it fits the returned cap.
