Skip to main content

agora-moss

Moss semantic search for Agora Conversational AI, exposed as a single MCP tool (search_knowledge_base) over streamable HTTP.

Drop it behind a public URL, add one mcp_servers entry to your ConvoAI join body, and your voice agent can search your Moss index. Nothing else changes — the package never owns the LLM hop.

This is the Agora analog of vapi-moss and elevenlabs-moss.

Install

pip install agora-moss
# or
uv add agora-moss

Quickstart

import uvicorn
from agora_moss import MossAgoraSearch, create_mcp_app

search = MossAgoraSearch(
    project_id="moss-project-id",
    project_key="moss-project-key",
    index_name="my-index",
    top_k=5,
    alpha=0.8,
)

mcp = create_mcp_app(search)
app = mcp.streamable_http_app()

uvicorn.run(app, host="0.0.0.0", port=8080)

Expose the server at a public URL, then point Agora ConvoAI at it by adding this to your join body:

"llm": {
  "mcp_servers": [{
    "name": "moss",
    "endpoint": "https://<public-host>/mcp",
    "transport": "streamable_http",
    "allowed_tools": ["search_knowledge_base"]
  }]
},
"advanced_features": { "enable_tools": true }

Agora constraints (verified April 2026):

  • Server entry name: ≤48 chars, alphanumeric only (no hyphens / underscores).
  • Transport: streamable_http only.
  • advanced_features.enable_tools must be true.

Public API

Symbol Kind Purpose
MossAgoraSearch(*, project_id, project_key, index_name, top_k=5, alpha=0.8) class Moss adapter; async load_index(), async search(query) -> AgoraSearchResult.
create_mcp_app(search) -> FastMCP function Returns a FastMCP server exposing search_knowledge_base; runs search.load_index() in its lifespan.
AgoraSearchResult dataclass documents: list[dict], `time_taken_ms: int

Demo app

See apps/agora-moss for a runnable end-to-end demo (Docker image + start_agent.py that calls ConvoAI's join REST).

Dependencies

  • moss>=1.0.0
  • mcp>=1.2 (Model Context Protocol Python SDK, FastMCP)
  • Python >=3.10,<3.15

License

BSD-2-Clause. See repository root.

Metadata

Release files for agora-moss 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agora-moss 0.0.1
File Size Uploaded Provenance Actions
agora_moss-0.0.1.tar.gz 7.2 kB Without provenance Details for agora_moss-0.0.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for agora-moss 0.0.1
File Interpreter ABI Platform Actions
agora_moss-0.0.1-py3-none-any.whl Python 3 none any Details for agora_moss-0.0.1-py3-none-any.whl

Total release size: 12.2 kB

Release files / agora_moss-0.0.1.tar.gz

Download URL agora_moss-0.0.1.tar.gz
Size 7.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ea93751b9c9e58d0fd7a5b2c761940d5bb1900b3ff9591ebc94c0776fdba43de
BLAKE2b-256 checksum
How to use checksums
460197263c2bea942bbecbb41dd18e2e52e405b444fc674ee5be2e3305f7b15f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / agora_moss-0.0.1-py3-none-any.whl

Download URL agora_moss-0.0.1-py3-none-any.whl
Size 5.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b00ba12473eb2468bfd05158bc31163e64ce06b5e50e67b12574979b538bf8a1
BLAKE2b-256 checksum
How to use checksums
c014b6c9abed991f39c0ae029c2edaf0e7e254f595a84c69e99d459cd8aaaa85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Security for agora-moss 0.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page