Skip to main content

Moss semantic search integration for Agora Conversational AI via MCP (streamable HTTP)

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agora_moss-0.0.1.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agora_moss-0.0.1-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file agora_moss-0.0.1.tar.gz.

File metadata

  • Download URL: agora_moss-0.0.1.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for agora_moss-0.0.1.tar.gz
Algorithm Hash digest
SHA256 ea93751b9c9e58d0fd7a5b2c761940d5bb1900b3ff9591ebc94c0776fdba43de
MD5 5f488bda5f224af4ff251c15b0f38ebe
BLAKE2b-256 460197263c2bea942bbecbb41dd18e2e52e405b444fc674ee5be2e3305f7b15f

See more details on using hashes here.

File details

Details for the file agora_moss-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: agora_moss-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for agora_moss-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b00ba12473eb2468bfd05158bc31163e64ce06b5e50e67b12574979b538bf8a1
MD5 a9f3ea02cea20aa8484e2e1a7550e5aa
BLAKE2b-256 c014b6c9abed991f39c0ae029c2edaf0e7e254f595a84c69e99d459cd8aaaa85

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page