__ __ _ ____ _____ ____ \ \ / /__| |__ | _ \_ _/ ___| \ \ /\ / / _ \ '_ \| |_) || || | \ V V / __/ |_) | _ < | || |___ \_/\_/ \___|_.__/|_| \_\|_| \____| MCP Server
Model Context Protocol server for navigating libwebrtc source code
An MCP server that gives AI assistants deep access to the libwebrtc codebase. Supports multiple versions simultaneously, semantic search, RFC lookup, and more.
Free to use for non-commercial purposes.
New here? See recommendations for using Claude →
Grouped by area — open a group for per-tool parameters.
Code navigation (9)
Search, read, and traverse the libwebrtc source tree — regex, AST symbols, references, and include graphs.
details →Build & project (8)
GN build targets, module metadata, the public C++ API surface, macros, field trials, and in-tree docs.
details →Versions & history (6)
Installed milestones, version-to-version diffs, git commit history, and the Firefox/Safari browser overlays.
details →Semantic search & RFCs (4)
Natural-language vector search over the code, index management, and semantic RFC lookup.
details →SDP & SIP (3)
Parse SDP/SIP, negotiate WebRTC offer/answer, and track stateful SIP dialogs from text or pcap — with FSM state, codec tables, and a sequence-diagram timeline.
details → HTTP transport with OAuth 2.1 (PKCE). Dynamic client registration is not supported — register a client first, then pass its client_id (and secret) in your MCP client config. Localhost redirect URIs are allowed for any port.
1. Register a client and grab client_id / client_secret at /profile →
2. Configure your client with those credentials (examples below).
Claude Code — CLI
MCP_CLIENT_SECRET=<your-client-secret> \ claude mcp add --transport http \ --client-id <your-client-id> --client-secret --callback-port 8090 \ webrtc https://webrtc.page/mcp
--client-secret reads the secret from MCP_CLIENT_SECRET (or prompts if unset). Without --client-id Claude Code attempts dynamic registration and fails with «does not support dynamic client registration».
Claude Code (.mcp.json)
{
"mcpServers": {
"webrtc": {
"type": "http",
"url": "https://webrtc.page/mcp",
"oauth": { "clientId": "<your-client-id>", "callbackPort": 8090 }
}
}
} The secret is kept in your OS keychain, never in .mcp.json. Run the CLI command once to store it, or set MCP_CLIENT_SECRET in the environment.
Claude Desktop (claude_desktop_config.json) · Cursor (.cursor/mcp.json) · Windsurf (~/.codeium/windsurf/mcp_config.json) · VS Code · Zed
These clients connect over the same OAuth flow — supply the registered client_id via each client's own OAuth credentials setting (field names vary by editor). Clients that only support automatic registration cannot connect; use the stdio transport locally instead.
| Milestone | Chrome | third_party | AST index | Downloaded | Changelog |
|---|---|---|---|---|---|
M149 | 149.0.7827.22 | +deps | indexed | 2026-05-21 | commit log ↗ |
M148 | 148.0.7778.178 | +deps | indexed | 2026-05-21 | commit log ↗ |
M147 | 147.0.7727.137 | +deps | indexed | 2026-05-21 | commit log ↗ |
M146 | 146.0.7680.164 | +deps | indexed | 2026-03-25 | commit log ↗ |
M145 | 145.0.7632.159 | +deps | indexed | 2026-05-30 | commit log ↗ |
M144 | 144.0.7559.132 | +deps | indexed | 2026-05-30 | commit log ↗ |
M143 | 143.0.7499.192 | +deps | indexed | 2026-05-31 | commit log ↗ |
M142 | 142.0.7444.175 | source only | indexed | 2026-03-25 | commit log ↗ |
M141 | 141.0.7390.122 | source only | indexed | 2026-03-25 | commit log ↗ |
M140 | 140.0.7339.207 | source only | indexed | 2026-03-25 | commit log ↗ |
M139 | 139.0.7258.154 | source only | indexed | 2026-03-25 | commit log ↗ |
M138 | 138.0.7204.183 | +deps | indexed | 2026-05-31 | commit log ↗ |
M137 | 137.0.7151.119 | source only | indexed | 2026-03-25 | commit log ↗ |
M136 | 136.0.7103.113 | source only | indexed | 2026-03-25 | commit log ↗ |
M135 | 135.0.7049.114 | source only | indexed | 2026-03-25 | commit log ↗ |
M134 | 134.0.6998.165 | source only | indexed | 2026-03-25 | commit log ↗ |
M133 | 133.0.6943.141 | source only | indexed | 2026-03-25 | commit log ↗ |
M132 | 132.0.6834.159 | source only | indexed | 2026-03-25 | commit log ↗ |
M131 | 131.0.6778.264 | source only | indexed | 2026-03-25 | commit log ↗ |
M130 | 130.0.6723.116 | source only | indexed | 2026-03-25 | commit log ↗ |
M129 | 129.0.6668.100 | source only | indexed | 2026-03-25 | commit log ↗ |
M128 | 128.0.6613.137 | source only | indexed | 2026-03-25 | commit log ↗ |
M127 | 127.0.6533.119 | source only | indexed | 2026-03-25 | commit log ↗ |
M126 | 126.0.6478.182 | source only | indexed | 2026-03-25 | commit log ↗ |
Firefox and Safari ship Google's libwebrtc with their own glue and a local patch stack. These overlays reuse a base milestone's source tree — the table shows which milestone each browser version is based on. Use the browser_versions and overlay_diff tools to explore them.
| Browser | Channel | Base milestone | Patches | Source |
|---|---|---|---|---|
Firefox 151 F151 | release | M147 | 145 | auto |
Firefox 150 F150 | release | M144 | 139 | auto |
Firefox 149 F149 | release | M143 | 134 | auto |
Firefox 148 F148 | release | M142 | 133 | auto |
Firefox 147 F147 | release | M141 | 132 | auto |
Firefox 140 ESR F140 | esr | M135 | 148 | auto |
Safari 26.4 S26 | release | M146~approx | 18 | auto |
Safari 18.6 S18 | release | M138~approx | 18 | auto |
A second MCP server covers pion, the Go implementation of WebRTC. Each version is a pion/webrtc release tag, indexed together with its go.mod-pinned sibling modules (ice, dtls, sctp, rtp…). It shares this site's OAuth credentials — connect at https://webrtc.page/pion.