MCP server bridging LLM clients to TrueConf Server — manage conferences, recordings, invitations via Model Context Protocol.
Project description
TrueConf Server MCP
Manage TrueConf Server conferences, recordings, and invitations from any MCP client, including LM Studio, Cursor, Claude Desktop, and others.
[!CAUTION] These instructions apply to TrueConf Server 5.5.3 and later. If you are running an earlier version, update your server.
Introduction
Model Context Protocol (MCP) is an open standard that allows large language models (LLMs) to invoke external tools through a unified protocol. Without MCP, every LLM client would require a separate TrueConf Server API integration. With MCP, a single server exposes all tools, and any compatible MCP client can immediately use them to create conferences, manage invitations, and access recordings and chats.
TrueConf Server MCP is an intermediary between an LLM client and TrueConf Server. It provides 32 tools for working with conferences, recordings, invitations, participants, chats, calendars, notifications, and translations.
Server capabilities
| Group | Tools |
|---|---|
| Conferences | Create, edit, delete, start, stop, and join conferences |
| Invitations | List, add, delete, update, and send invitations in bulk |
| Participants | List participants, retrieve the owner, and retrieve the current user |
| Recordings | List, view, start, stop, and pause recordings |
| Links and calendars | Deep links, shared links, ICS files, and calendars |
| Notifications and registration | Send notifications and register for conferences |
Quick start
- Install the MCP server. → Step 1
- Create an OAuth application on TrueConf Server. → Step 2
- Start the MCP server. → Step 3
- Sign in and obtain a token. → Step 4
- Connect an MCP client such as LM Studio or Cursor. → Step 5
- Verify the connection. → Step 6
Step 1 — Installation
Install the application with uv (recommended):
uv tool install trueconf-server-mcp
Or install it with pip:
pip install trueconf-server-mcp
[!TIP] You can also use
uvxto run the application without installing it permanently:uvx trueconf-server-mcp --server 10.0.0.1 --client-id ... --client-secret ...If the
trueconf-server-mcpcommand is not available afteruv tool install, runuv tool update-shelland restart your terminal.
Step 2 — Create an OAuth application
The MCP server requires the client_id and client_secret of an OAuth application configured on TrueConf Server.
-
Open the TrueConf Server control panel and go to Web → Security → OAuth 2.0. For details, see the documentation.
-
Create an application and specify the following redirect_uri:
http://localhost:8080/auth/callback[!IMPORTANT] The redirect URI must equal
MCP_BASE_URLfollowed by/auth/callback. If you use another host or port, update it accordingly. See MCP_BASE_URL. -
Enable the scopes required by the tools:
Scope Description conferences:readRead conferences, deep links, shared links, calendars, and translations conferences:writeCreate, edit, delete, start, stop, and join conferences conferences.invitations:readRead invitations conferences.invitations:writeAdd, edit, delete, and send invitations; send notifications; register users conferences.participants:readRead participants, the conference owner, and the current user conferences.records:readRead recordings conferences.records:writeStart, stop, and pause recordings conferences.messages:readRead and export chat messages -
Copy the
client_idandclient_secret. You will need them in the next step.
Step 3 — Start the server
trueconf-server-mcp \
--no-tls --port 8080 \
--server 10.0.0.1 \
--client-id <client_id> \
--client-secret <client_secret>
Where:
--serveris the IP address or domain name of TrueConf Server.--client-idand--client-secretare the OAuth application credentials from step 2.--no-tls --port 8080starts the server without TLS on port 8080 for initial setup and testing.
[!TIP] The
--no-tlsoption transmits the bearer token without encryption. Use it only for initial setup and testing.For production, start the server without
--no-tls. A self-signed TLS certificate will be generated automatically, and the server will listen on port 443. If your LLM client does not trust self-signed certificates, you can either:
- configure your own certificate, such as a Let's Encrypt certificate;
- disable certificate validation in the client, as shown for LM Studio.
[!CAUTION] Ports 80 and 443 are privileged ports. To use them:
OS Action macOS Binding to 0.0.0.0:80or0.0.0.0:443works without root privilegesLinux Run sudo setcap cap_net_bind_service+ep $(which trueconf-server-mcp)or start the server withsudoWindows Run the application as Administrator (UAC) If you do not have the required permissions, use
--port 8080or another port above 1024.
Step 4 — Authentication
-
Open
http://localhost:8080/in your browser. Click Sign in to open the TrueConf Server authentication page. -
Enter your TrueConf Server credentials and grant access.
-
After successful authentication, you will be redirected to
/success, which displays your token and ready-to-use MCP client configurations. -
Copy the token. You will need it to connect your MCP client.
[!NOTE] The token is valid for 24 hours by default. You can change this using
--api-token-ttl. After the token expires, sign in again athttp://localhost:8080/.
Step 5 — Connect an MCP client
Copy the configuration for your client from the /success page or create it manually. Example for LM Studio:
{
"mcpServers": {
"trueconf": {
"url": "http://localhost:8080/mcp",
"headers": {
"Authorization": "Bearer <your_token>"
}
}
}
}
Ready-to-use configurations for Cursor, Claude Desktop, OpenCode, and OpenWebUI are available in MCP clients.
Step 6 — Verify the connection
Open your LLM client and ask:
Show my scheduled conferences
The LLM will invoke the list_conferences tool and return your conference list from TrueConf Server.
Configuration
Configuration precedence
Settings are applied in the following order, from highest to lowest priority:
- CLI options —
--server,--port,--no-tls, etc. - Environment variables —
TRUECONF_SERVER,TRUECONF_MCP_PORT, etc. - The
.envfile — loaded with python-dotenv - Defaults — built-in values
Options
| Option | Environment variable | Default | Description |
|---|---|---|---|
--server |
TRUECONF_SERVER |
(required) | TrueConf Server host (IP address or FQDN) |
--client-id |
TRUECONF_CLIENT_ID |
(required) | OAuth client ID |
--client-secret |
TRUECONF_SECRET |
(required) | OAuth client secret |
--verify-ssl / --no-verify-ssl |
TRUECONF_VERIFY_SSL |
verify-ssl |
Verify the TrueConf Server TLS certificate |
--base-url |
MCP_BASE_URL |
https://localhost |
Public MCP server URL; it must be reachable by MCP clients |
--port |
TRUECONF_MCP_PORT |
443 (80 with --no-tls) |
Server port |
--no-tls |
MCP_NO_TLS |
false |
Disable TLS and use plain HTTP; changes the default port to 80 |
--tls-cert |
MCP_TLS_CERT |
(generated automatically) | Path to a PEM certificate; requires --tls-key |
--tls-key |
MCP_TLS_KEY |
(generated automatically) | Path to a PEM private key; requires --tls-cert |
--discovery-mode |
DISCOVERY_MODE |
static |
Tool discovery mode: static, bm25, or code |
--auth-mode |
AUTH_MODE |
token |
Authentication mode: token (manual token) |
--api-token-ttl |
API_TOKEN_TTL |
86400 |
Token TTL in seconds |
--http-timeout |
HTTP_TIMEOUT |
30.0 |
TrueConf API request timeout in seconds |
Command-line help
trueconf-server-mcp --help
The .env file
Instead of passing configuration through CLI options, you can create a .env file in the working directory. See .env.example:
TRUECONF_SERVER=10.0.0.1
TRUECONF_CLIENT_ID=your_client_id
TRUECONF_SECRET=your_client_secret
TRUECONF_VERIFY_SSL=false
MCP_BASE_URL=http://localhost:8080
MCP_NO_TLS=true
TRUECONF_MCP_PORT=8080
trueconf-server-mcp
TLS for production
By default, when --no-tls is not specified, the server listens on https://0.0.0.0:443 using an automatically generated self-signed certificate. On macOS, the certificate is stored in ~/Library/Application Support/fastmcp/tls/ and reused across restarts.
Custom certificate
To use a trusted certificate, such as one issued by Let's Encrypt:
trueconf-server-mcp \
--server 10.0.0.1 \
--client-id <client_id> \
--client-secret <client_secret> \
--tls-cert /path/to/cert.pem \
--tls-key /path/to/key.pem
[!IMPORTANT]
--tls-certand--tls-keymust be specified together.
LM Studio with a self-signed certificate
LM Studio is based on Node.js and does not trust self-signed certificates. If the following error occurs while connecting:
TypeError: fetch failed: self-signed certificate
Start LM Studio with TLS validation disabled:
macOS
NODE_TLS_REJECT_UNAUTHORIZED=0 open "/Applications/LM Studio.app"
Windows (Command Prompt)
set NODE_TLS_REJECT_UNAUTHORIZED=0
start "" "C:\Program Files\LM Studio\LM Studio.exe"
Linux
NODE_TLS_REJECT_UNAUTHORIZED=0 lm-studio
[!WARNING]
NODE_TLS_REJECT_UNAUTHORIZED=0disables certificate verification for all HTTPS requests made by the LM Studio process. Use it only for local development. In production, configure a trusted certificate with--tls-certand--tls-key.
MCP_BASE_URL
MCP_BASE_URL defines the URL MCP clients use to reach the server. It is included in OAuth metadata and must be externally reachable by your clients.
| Scenario | MCP_BASE_URL |
|---|---|
| Local use (localhost only) | https://localhost (default; port 443 is omitted) |
| LAN (other devices on the network) | https://<LAN-IP> (port 443 is omitted) |
With --no-tls |
http://localhost:8080 (the port is specified explicitly) |
[!CAUTION] Do not use
127.0.0.1inMCP_BASE_URLif the MCP client runs on another machine; it will not be able to reach the server.
MCP clients
The server is compatible with any MCP client that supports HTTP transport with bearer authentication. Ready-to-use configurations are available on the /success page after authentication.
LM Studio
{
"mcpServers": {
"trueconf": {
"url": "http://localhost:8080/mcp",
"headers": {
"Authorization": "Bearer <your_token>"
}
}
}
}
[!NOTE] LM Studio does not trust self-signed certificates. See TLS.
Cursor
{
"mcpServers": {
"trueconf": {
"url": "http://localhost:8080/mcp",
"headers": {
"Authorization": "Bearer <your_token>"
}
}
}
}
Claude Desktop
{
"mcpServers": {
"trueconf": {
"type": "http",
"url": "http://localhost:8080/mcp",
"headers": {
"Authorization": "Bearer <your_token>"
}
}
}
}
OpenCode
{
"mcp": {
"servers": {
"trueconf": {
"url": "http://localhost:8080/mcp",
"transport": "http",
"headers": {
"Authorization": "Bearer <your_token>"
}
}
}
}
}
OpenWebUI
URL: http://localhost:8080/mcp
Header: Authorization: Bearer <your_token>
Tool discovery modes
The --discovery-mode option controls how the MCP client sees the server tools:
| Mode | Description |
|---|---|
static (default) |
All 32 tools are exposed directly. Recommended for most use cases. |
bm25 |
Tools are hidden behind a search gateway. The LLM searches for an appropriate tool by its description, reducing context usage when many tools are available. |
code |
CodeMode sandbox. Tools are available through a code sandbox for complex workflows. |
trueconf-server-mcp --discovery-mode bm25 --server ... --client-id ... --client-secret ...
Troubleshooting
| Problem | What to check |
|---|---|
| “Plugin process exited” or the MCP client cannot connect | Make sure MCP_BASE_URL is reachable from the machine running the client. Do not use 127.0.0.1 for remote clients |
| “self-signed certificate” in LM Studio | Start LM Studio with NODE_TLS_REJECT_UNAUTHORIZED=0 (see TLS) or configure a trusted certificate with --tls-cert and --tls-key |
| 401 Unauthorized in the MCP client | Make sure the token was copied correctly and has not expired. Its default TTL is 24 hours. Sign in again at http://localhost:8080/ |
| 403 Forbidden for a specific tool | The TrueConf Server OAuth application is missing the required scope |
| Permission denied when binding to port 80 or 443 | See the Quick start table, or use --port 8080 |
| Missing required configuration at startup | Supply --server, --client-id, and --client-secret through CLI options, environment variables, or a .env file |
If the problem persists, contact TrueConf technical support.
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file trueconf_server_mcp-0.1.0.tar.gz.
File metadata
- Download URL: trueconf_server_mcp-0.1.0.tar.gz
- Upload date:
- Size: 3.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc506d980fe32797e0334dc050c8c6bb211ac5261655f2cb02b46885e42ef934
|
|
| MD5 |
fe3e64aeab8e408ccf2e53b9cbc3a3d2
|
|
| BLAKE2b-256 |
edcd52a7d8b29cc2007e14feb1fbef161b957d4d25a6af6fed353f2643f879f5
|
Provenance
The following attestation bundles were made for trueconf_server_mcp-0.1.0.tar.gz:
Publisher:
release.yml on TrueConf/trueconf-server-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
trueconf_server_mcp-0.1.0.tar.gz -
Subject digest:
fc506d980fe32797e0334dc050c8c6bb211ac5261655f2cb02b46885e42ef934 - Sigstore transparency entry: 2333523475
- Sigstore integration time:
-
Permalink:
TrueConf/trueconf-server-mcp@90e40198c91a74b4686f9efd66e0b3fff399dd6e -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/TrueConf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@90e40198c91a74b4686f9efd66e0b3fff399dd6e -
Trigger Event:
release
-
Statement type:
File details
Details for the file trueconf_server_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: trueconf_server_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 124.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e234d6d6e76f4e964690febff94d5f8adfca0fea3522ac9b5cef329bd0a93f33
|
|
| MD5 |
5dce12ed445bf61a53ccc08e33140d27
|
|
| BLAKE2b-256 |
f39bad4e757913ed09899b44214e7358192e81c1741bbee6d6ac30f567e15b82
|
Provenance
The following attestation bundles were made for trueconf_server_mcp-0.1.0-py3-none-any.whl:
Publisher:
release.yml on TrueConf/trueconf-server-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
trueconf_server_mcp-0.1.0-py3-none-any.whl -
Subject digest:
e234d6d6e76f4e964690febff94d5f8adfca0fea3522ac9b5cef329bd0a93f33 - Sigstore transparency entry: 2333523482
- Sigstore integration time:
-
Permalink:
TrueConf/trueconf-server-mcp@90e40198c91a74b4686f9efd66e0b3fff399dd6e -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/TrueConf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@90e40198c91a74b4686f9efd66e0b3fff399dd6e -
Trigger Event:
release
-
Statement type: