Skip to content

Sonilo Music & Sound Effects AGENTS.md changelog

io.github.sonilo-ai/sonilo-mcp

2 changes recorded. MCP Harbor re-reads this listing from the official registry every six hours and asks the live server what it exposes, and keeps what changed between one look and the next.

  • AGENTS.md +4 −2

    https://raw.githubusercontent.com/sonilo-ai/sonilo-mcp/HEAD/AGENTS.md

    − | `TIME_OUT_SECONDS` | `600` | Wait limit for a generation |− hosted server calls the same tool `get_generation_task`). Streaming music+ | `TIME_OUT_SECONDS` | `600` | Timeout for streaming music, uploads and downloads; task polls wait at least 2700 s (stems 4500 s, dubbing 7200 s) |+ hosted server calls the same tool `get_generation_task`). If the MCP host's own+ tool-call timeout cuts the call off first, the id is in the server's stderr log+ as `[sonilo-mcp] task submitted: <id>`. Streaming music

  • AGENTS.md 1 field changed
    file
    absent published

    https://raw.githubusercontent.com/sonilo-ai/sonilo-mcp/HEAD/AGENTS.md

    + # AGENTS.md+ Notes for coding agents working on `sonilo-mcp`, and for agents connecting to it.+ ## What this repo is+ A local stdio MCP server (Python, FastMCP) that wraps Sonilo's public API:+ music, sound effects, combined music + SFX, video analysis, audio ducking,+ dubbing and proofreading. It uploads local files, waits on async tasks and+ saves results to disk. Published to PyPI as `sonilo-mcp` and to the MCP+ Registry as `io.github.sonilo-ai/sonilo-mcp`.+ There is also a hosted, OAuth-authenticated server at+ `https://api.sonilo.com/mcp`. It is not built from this repo.+ ## Layout+ ```+ src/sonilo_mcp/api.py          every tool, HTTP calls, polling, downloads, path confinement; entry point `main`+ src/sonilo_mcp/credentials.py  reads the `sonilo login` credential file+ tests/test_api.py              tool tests (respx mocks the API; no network)+ tests/test_credentials.py+ tests/conftest.py              clears SONILO_* env vars and points HOME at a tmp dir+ pyproject.toml                 package metadata and the real version+ server.json                    MCP Registry manifest; release CI rewrites its version+ uv.lock                        pins mcp to 1.x (2.x removed mcp.server.fastmcp)+ ```+ `setup.py` is legacy and its version is not used. `pyproject.toml` is the+ source of truth.+ ## Commands+ ```bash+ uv sync --extra dev --frozen   # install, honouring uv.lock+ uv run pytest -v               # what CI runs+ uv run sonilo-mcp              # start the server on stdio+ ```+ Use `uv sync --frozen`, not a plain `pip install`: an unpinned resolve can pull+ `mcp` 2.x and every import fails. There is no PR CI in this repo; tests run in+ `.github/workflows/release.yml` before publishing, so run them locally.+ ## Releasing+ 1. Bump `version` in `pyproject.toml`; put the version in the commit title,+    e.g. `proofread: ... (0.26.0)`.+ 2. Push a `vX.Y.Z` tag that matches it. The release workflow tests, publishes+    to PyPI (trusted publishing), waits until PyPI serves the version, then+    syncs `server.json` and publishes to the MCP Registry.+ ## Conventions for changes+ - A new tool or parameter mirrors the public API's field names and limits. Add

    Showing the first 40 of each.