ConferenceCaptioning MCP server
2026년 11월 13일 커밋AI 어시스턴트가 ConferenceCaptioning 이벤트의 실시간 자막, 번역, 저장된 트랜스크립트 및 청중 질문을 읽을 수 있도록 합니다.
다른 이름 TheFirstPrototype/ConfCapMcp, confcapmcp
- 스타
- 0
- Tools
- 10
- 다운로드, 30일
- —
- 최신 버전
- 0.1.0
- 마지막 커밋
- 2026년 11월 13일
- 라이선스
- MIT
ConferenceCaptioning MCP란?
ConferenceCaptioning은(는) MCP server입니다. AI 어시스턴트가 ConferenceCaptioning 이벤트의 실시간 자막, 번역, 저장된 트랜스크립트 및 청중 질문을 읽을 수 있도록 합니다. 10개 도구를 제공합니다. 예: list_my_streams, get_session_overview, get_stream_status.
프로젝트 README에서 생성된 요약
ConferenceCaptioning MCP server 정보
ConferenceCaptioning은 AI 어시스턴트가 스트리밍 이벤트의 실시간 및 과거 데이터에 접근할 수 있도록 하는 읽기 전용 MCP server를 제공합니다. 개발자는 로컬 stdio 설정 또는 원격 HTTP 엔드포인트를 사용하여 이 서버를 Claude Desktop 또는 Claude Code와 같은 클라이언트에 연결할 수 있습니다. 보안 스트림, 저장된 트랜스크립트 또는 청중 질문에 접근하려면 ConferenceCaptioning 포털에서 생성한 개발자 API 키를 제공해야 합니다.
서버에는 실시간 텍스트를 위한 get_live_captions, 과거 기록을 위한 list_saved_transcripts, 청중 문의를 확인하기 위한 list_questions 등 이벤트 데이터와 상호작용하기 위한 특정 도구가 포함되어 있습니다. 또한 세션 개요 및 스트림 상태 업데이트 기능도 제공합니다. 사용자는 CONFCAP_KEY 및 CONFCAP_STREAM과 같은 환경 변수나 호스팅 연결을 위한 HTTP 헤더를 통해 액세스를 관리할 수 있습니다. 이 시스템은 모든 작업이 읽기 전용으로 수행되고 자격 증명이 로그 및 도구 인자로부터 보호되도록 설계되어 안전성을 고려했습니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
ConferenceCaptioning MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 ConferenceCaptioning MCP 설치
$ claude mcp add --transport http confcapmcp https://mcp.deafassistant.com/mcpCursor에 ConferenceCaptioning MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"confcapmcp": {
"url": "https://mcp.deafassistant.com/mcp"
}
}
}VS Code에 ConferenceCaptioning MCP 설치
.vscode/mcp.json
{
"servers": {
"confcapmcp": {
"type": "http",
"url": "https://mcp.deafassistant.com/mcp"
}
}
}VS Code CLI에 ConferenceCaptioning MCP 설치
$ code --add-mcp '{"name":"confcapmcp","type":"http","url":"https://mcp.deafassistant.com/mcp"}'Codex에 ConferenceCaptioning MCP 설치
$ codex mcp add confcapmcp --url https://mcp.deafassistant.com/mcpCodex config.toml에 ConferenceCaptioning MCP 설치
~/.codex/config.toml
[mcp_servers.confcapmcp] url = "https://mcp.deafassistant.com/mcp"
Gemini CLI에 ConferenceCaptioning MCP 설치
$ gemini mcp add -s user --transport http confcapmcp https://mcp.deafassistant.com/mcpGemini settings.json에 ConferenceCaptioning MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"confcapmcp": {
"url": "https://mcp.deafassistant.com/mcp",
"type": "http"
}
}
}ConferenceCaptioning MCP 도구 10
README에서 감지됨list_my_streamsget_session_overviewget_stream_statusget_live_captionsget_stream_contextlist_saved_transcriptsget_saved_transcriptlist_questionsget_audience_summaryget_help_links
| list_my_streams | — | |
| get_session_overview | — | |
| get_stream_status | — | |
| get_live_captions | — | |
| get_stream_context | — | |
| list_saved_transcripts | — | |
| get_saved_transcript | — | |
| list_questions | — | |
| get_audience_summary | — | |
| get_help_links | — |
구성
CONFCAP_KEYCONFCAP_STREAMFIREBASE_API_KEY
| 이름 | 설명 | 유형 |
|---|---|---|
| CONFCAP_KEY | — | |
| CONFCAP_STREAM | — | |
| FIREBASE_API_KEY | — |
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →아직 인증되지 않았습니다. 서버는 80점 이상의 점수, 심각한 결함 없음, 그리고 검사에 충분한 데이터를 갖추어야 합니다. 검사 방식 · 점수를 높이기 위해 수정할 항목
- 소스 저장소 연결 및 접근 가능thefirstprototype/confcapmcp is public and reachablegithub.com/thefirstprototype/confcapmcp ↗통과
- 패키지가 이 저장소를 소스로 명시검사되지 않음
- 빌드 출처(Sigstore 증명)검사되지 않음
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-11-13github.com/thefirstprototype/confcapmcp ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음검사되지 않음
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
- 모델에 대한 숨겨진 지침 없음10 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨No tool named like delete, drop or exec통과
- 원격 엔드포인트가 MCP 핸드셰이크에 응답initialize answered with protocol 2025-06-18 in 318 ms통과
README
GitHub에서 보기ConfCapMcp
A read-only MCP server for ConferenceCaptioning. It lets an AI assistant read your stream's live captions and translations, your saved transcripts and your audience questions, using a developer API key you create in the portal.
Privacy: everything a tool returns is sent to the AI model you connected. If you promised attendees that captions stay private, check that model provider's terms first.
Setup
- In the portal (https://app.deafassistant.com), open Advanced Settings and choose Create Developer API Key. Copy the key (it is shown once). It is read-only, and you can delete it any time.
- Build:
npm install && npm run build. - Add the server to your client. Claude Desktop (
claude_desktop_config.json) or any stdio MCP client:
{
"mcpServers": {
"confcap": {
"command": "node",
"args": ["/path/to/ConfCapMcp/dist/src/index.js"],
"env": { "CONFCAP_KEY": "cck_...", "CONFCAP_STREAM": "yourstream" }
}
}
}
Claude Code: claude mcp add confcap -e CONFCAP_KEY=cck_... -e CONFCAP_STREAM=yourstream -- node /path/to/ConfCapMcp/dist/src/index.js
| Variable | Meaning |
|---|---|
CONFCAP_KEY |
Your developer API key. Needed for saved transcripts, questions and your secured streams. Not needed for public streams. |
CONFCAP_STREAM |
Default stream name. If unset and the key owns exactly one stream, that stream is used. |
CONFCAP_AUTH |
The secure code of a secured stream, to read its captions without being its owner. |
CONFCAP_API_URL |
Defaults to https://api.deafassistant.com. Must be https (or localhost). |
Keep the key out of source control. See the Developer API docs.
Hosted mode
MCP_TRANSPORT=http PORT=8787 node dist/src/index.js runs a stateless streamable-HTTP endpoint (POST /mcp, GET /healthz) instead of stdio. Each request carries its own key (Authorization: Bearer cck_...), optionally X-Confcap-Stream and X-Confcap-Auth. Nothing is stored; callers never share cached text; 60 requests a minute per caller. Self-hosting as a systemd service behind nginx, with memory and CPU caps, is in deploy/README.md.
Connect a client to the hosted server (nothing to install)
The hosted endpoint is https://mcp.deafassistant.com/mcp. Create a key in the portal (step 1 above), then:
- Claude Code:
claude mcp add --transport http confcap https://mcp.deafassistant.com/mcp --header "Authorization: Bearer cck_..."(add--header "X-Confcap-Stream: yourstream"to set a default stream). - Claude Desktop (tested): Settings > Connectors > Add > Add custom connector. Name
ConferenceCaptioning, MCP server URLhttps://mcp.deafassistant.com/mcp, then Continue. It reports "no sign-in" (we do not use OAuth); open Request headers, add the headerAuthorizationwith the valueBearerfollowed by your key, and click Add. Then start a chat and ask "what can the ConferenceCaptioning connector do". - Any other client with remote MCP and custom headers: the same URL with the header
Authorization: Bearer cck_.... Clients that only offer OAuth sign-in cannot send a static header yet. - Clients that only speak stdio:
npx mcp-remote https://mcp.deafassistant.com/mcp --header "Authorization: Bearer cck_..."bridges to the hosted URL.
The key is sent on every request, so treat the client's config file like a password file. Check the connection with HOSTED_URL=https://mcp.deafassistant.com node scripts/live-smoke.mjs (needs a portal login and FIREBASE_API_KEY, see below).
Listing in the MCP Registry
server.json describes the hosted server for the official MCP Registry (a remote, streamable-http server that needs an Authorization header). It is published by the "Publish to the MCP Registry" workflow (.github/workflows/publish-registry.yml) through GitHub's OIDC login, because an organization namespace (io.github.TheFirstPrototype) cannot be published from a laptop's mcp-publisher login github. Push a tag such as v0.1.0 (the tag becomes the version), or run the workflow by hand. The registry checks that you control the namespace, not the server URL.
Tools
| Tool | What it does | Needs a key |
|---|---|---|
list_my_streams |
The streams the key can read | yes |
get_session_overview |
Start here: what exists for a stream (live or probably stopped, live text held, saved transcripts, questions, glossary) and what to do next | no (more with a key) |
get_stream_status |
Live or not, languages, and whether it is readable (ok, authRequired, expired, unknown) |
no |
get_live_captions |
Newest caption text, spoken language or a translation; a cursor for new text only |
no (yes for your secured streams) |
get_stream_context |
Colour, logo and glossary terms (use them to correct mis-heard names) | no |
list_saved_transcripts |
Saved transcripts with title, note, times and length | yes |
get_saved_transcript |
One transcript, paged | yes |
list_questions |
Audience questions, oldest first | yes |
get_audience_summary |
Visits to the attendee page: totals, peak, cities, referrers, devices | yes |
get_help_links |
Links to the how-to guides (static) | no |
Also: resources confcap://stream/{name}/status and confcap://stream/{name}/transcript/{id}, and prompts meeting_minutes, triage_questions, catch_me_up, translate_summary.
Good to know:
- Translations are a window of recent text that is re-translated as people speak. Saved transcripts are in the spoken language only; ask the assistant to translate them.
- Only some streams store history, and only sessions of 100 characters or more.
- Speech and questions come back wrapped in
<untrusted-text>: other people wrote them, so a model should treat them as data, never as instructions.
Safety properties (all tested)
- Only
GETrequests. The server has no code path that writes or deletes, and the key is read-only on the server as well. - Credentials come only from the environment, never from tool arguments. They are redacted from errors and never logged.
- The account
uidand the admin code are never used or sent. - Calls to one stream are spaced at one per second and overall at five per second;
429and5xxare retried with backoff. - Two server instances never share cached text.
Live smoke test (stdio, or HOSTED_URL=https://... node scripts/live-smoke.mjs for the hosted endpoint)
Runs the built server against the real API with a throwaway key (created and deleted by the script), calls every tool read-only, and checks that neither the key nor the account uid appears in any output.
npm run build
FIREBASE_API_KEY='portal Firebase web apiKey' T_EMAIL='<portal login of an account that owns a stream>' T_PASS='<password>' npm run live-smoke
Optional: SMOKE_STREAM (default: the account's first stream), API_BASE_URL. Exit code 0 means it passed. Never commit the password. The related checks are ConfCapApi/scripts/live_developer_keys_check.py (API) and ConfCapPortal/e2e (portal UI).
Development
npm test builds and runs the tests (a real local mock API, the protocol through the SDK's in-memory transport, and mutation-style checks described in test/). The server uses the v1.x SDK, which supports the 2025-11-25 MCP spec.
ConferenceCaptioning MCP 질문
ConferenceCaptioning MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add --transport http confcapmcp https://mcp.deafassistant.com/mcp를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
ConferenceCaptioning MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
ConferenceCaptioning MCP는 어떤 도구를 제공하나요?
10개 도구를 제공합니다. 예: list_my_streams, get_session_overview, get_stream_status, get_live_captions, get_stream_context.
ConferenceCaptioning API 키는 어떻게 발급받나요?
포털의 Advanced Settings에서 Create Developer API Key를 선택하세요. 해당 키는 읽기 전용이며 언제든지 삭제할 수 있습니다.
서버가 읽기 전용인가요?
네, 서버는 GET 요청만 수행하며 데이터를 쓰거나 삭제하는 코드 경로는 존재하지 않습니다.
Claude Desktop에서 사용할 수 있나요?
네, claude_desktop_config.json 파일을 사용하거나 UI의 커스텀 커넥터 설정을 통해 Claude Desktop에 추가할 수 있습니다.
자막의 개인정보 보호는 어떻게 되나요?
도구가 반환하는 모든 정보는 연결된 AI 모델로 전송되므로, 개인정보 보호와 관련된 모델 제공업체의 약관을 확인해야 합니다.