Flix MCP Server
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Flix MCP Serverdiscover devices on my LAN"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Flix MCP Server
🚀 MCP (Model Context Protocol) 服务器实现,为 Flix 局域网文件传输应用提供 AI 模型调用接口。
✨ 特性亮点
🔍 设备发现 - 自动发现局域网内的 Flix 设备
📨 消息传输 - 发送/接收文本消息
📁 文件传输 - 支持断点续传的文件收发
📋 剪贴板同步 - 跨设备剪贴板同步
🔒 设备管理 - 设备配对、黑名单管理
🤖 AI 集成 - 与 Claude Desktop 等 AI 客户端无缝集成
Related MCP server: mcp-comfyui
📦 快速开始
安装和构建
# 克隆项目
git clone <repository-url>
cd flix-mcp
# 安装依赖
npm install
# 构建项目
npm run build
# 启动服务
npm start验证运行
# 检查健康状态
curl http://localhost:8765/health
# 预期输出
{"status":"ok","deviceId":"...","deviceName":"Flix MCP Server"}配置
创建 .env 文件:
# 服务配置
PORT=8765
DEVICE_NAME=Flix MCP Server
# 文件传输配置
MAX_FILE_SIZE=10737418240 # 10GB
AUTO_RECEIVE=false
DOWNLOAD_DIR=./downloads
# 安全配置
REQUIRE_PAIRING=true🤖 与 Claude Desktop 集成
在 Claude Desktop 配置文件中添加:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"flix": {
"command": "node",
"args": ["/absolute/path/to/flix-mcp/dist/index.js"],
"env": {
"DEVICE_NAME": "Claude Flix",
"AUTO_RECEIVE": "true"
}
}
}
}重启 Claude Desktop 后,你就可以:
用户: 发现局域网内的 Flix 设备
Claude: [调用 flix_discover_devices 工具]
用户: 把文件 ~/Documents/report.pdf 发送到我的 iPad
Claude: [调用 flix_send_file 工具]
用户: 同步剪贴板到我的 iPhone
Claude: [调用 flix_sync_clipboard 工具]MCP Tools
设备管理
flix_discover_devices- 发现局域网设备flix_get_device- 获取设备详情flix_pair_device- 设备配对flix_block_device- 拉黑设备flix_unblock_device- 解除拉黑
消息传输
flix_send_text- 发送文本消息flix_get_messages- 获取消息列表
文件传输
flix_send_file- 发送文件flix_receive_file- 接收文件flix_get_transfer_status- 查询传输状态flix_cancel_transfer- 取消传输flix_pause_transfer- 暂停传输flix_resume_transfer- 恢复传输
剪贴板同步
flix_sync_clipboard- 同步剪贴板flix_get_clipboard- 获取剪贴板内容
📚 文档
🛠️ 开发
# 开发模式(自动重载)
npm run dev
# 运行测试
npm test
# 代码检查
npm run lint
# 构建
npm run build🐳 Docker 部署
# 使用 Docker Compose(推荐)
docker-compose up -d
# 或手动构建
docker build -t flix-mcp .
docker run -d --network host -v $(pwd)/downloads:/app/downloads flix-mcp注意: 使用 --network host 以支持 UDP 组播发现。
📊 项目状态
✅ 完全实现 - 所有核心功能已完成 ✅ 生产就绪 - 完善的错误处理和测试 ✅ 文档完善 - 详细的使用文档和示例 ✅ 构建成功 - TypeScript 编译通过
🤝 贡献
欢迎提交 Issue 和 Pull Request!
📄 许可证
MIT License
🎉 项目已完成,可以立即投入使用!
如有问题,请查看 USAGE.md 的故障排查章节。
Available Tools
16 toolsflix_block_deviceC
Block a Flix device
| Name | Required | Description | Default |
|---|---|---|---|
| deviceId | Yes | Device ID to block |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits, but it only states the action. It fails to explain what blocking does, whether it is reversible, what permissions are required, or the effect on the device and user.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and concise, but it is under-specified. While it earns its place by naming the operation, it lacks context that would make it useful, balancing conciseness against substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a mutation (blocking) with no output schema and no annotations, yet the description provides zero context about behavior, return values, side effects, or reversibility. This is inadequate for a tool that modifies device state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description 'Device ID to block' fully explains the single parameter. The description adds no additional meaning beyond the schema, matching the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Block' with a clear resource 'Flix device', which precisely states the tool's action. It distinguishes itself from sibling tools like flix_unblock_device and flix_pair_device by identifying a distinct operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, consequences, or scenarios where blocking is appropriate, leaving the agent to infer usage from the action name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flix_cancel_transferA
Cancel an ongoing file transfer
| Name | Required | Description | Default |
|---|---|---|---|
| transferId | Yes | Transfer ID to cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose consequences such as whether partial files are deleted, whether the transfer becomes unresumable, or any state requirements beyond 'ongoing'. This is a significant gap for a cancellation operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one short sentence with no filler. It is front-loaded with the action and objective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description provides the core purpose. However, it lacks details on side effects or post-conditions, which would make it fully complete. Still adequate for a simple cancel operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the transferId parameter with 'Transfer ID to cancel' at 100% coverage. The description adds no additional parameter information, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Cancel' with the resource 'ongoing file transfer', clearly distinguishing it from sibling tools like pause and resume. There is no ambiguity about the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used for transfers that are currently in progress (ongoing), providing clear context. However, it does not explicitly mention alternatives or when not to use, such as distinguishing from pause for temporary stops.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flix_discover_devicesA
Discover Flix devices in the local network
| Name | Required | Description | Default |
|---|---|---|---|
| timeout | No | Discovery timeout in seconds (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It states the core behavior—discovering devices on the local network—which is transparent enough for a scan-like operation. However, it does not disclose potential side effects (e.g., network traffic, time taken) or return format, though the timeout parameter in the schema partially hints at scanning behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It clearly conveys the tool's purpose without elaboration, achieving maximum conciseness while remaining informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (only one optional parameter, no annotations, no output schema), the description is mostly adequate. It tells the agent what the tool does, and the schema handles the parameter. However, it does not state what the tool returns, which might be useful, but the purpose 'discover devices' implicitly suggests a list of devices is returned. Overall, it's complete enough for the simple context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description covers the single parameter (timeout) at 100%, so the baseline is 3. The tool description adds no additional meaning beyond the schema; it only repeats the 'discover' concept, and the timeout's purpose is already described in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Discover') and the resource ('Flix devices in the local network'), which distinguishes it from sibling tools like flix_get_device (which retrieves a specific device) and flix_pair_device (which pairs). The verb and scope are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for discovering devices on the local network, providing a clear context. However, it does not explicitly state when to use this tool versus alternatives (e.g., to get a single device, use flix_get_device) nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flix_get_clipboardB
Get current clipboard content
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the full burden. However, it simply restates the tool name without disclosing behavioral details like whether it reads a local or remote clipboard, or if any permissions are needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that is appropriately concise for a tool with no parameters. It contains no excess words and is front-loaded with the key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is too terse given the lack of annotations, output schema, and context. It does not explain the tool's role among siblings, especially the related flix_sync_clipboard, leaving ambiguity about its use and scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description provides no parameter information. Per the baseline rule for 0-parameter tools, a score of 4 applies, and the schema coverage is trivially 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' with a clear resource 'current clipboard content', which directly indicates the tool's function. It is distinct from sibling tools like flix_sync_clipboard, which implies a different operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as flix_sync_clipboard. The description does not mention any exclusions or contextual scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flix_get_deviceB
Get detailed information about a specific device
| Name | Required | Description | Default |
|---|---|---|---|
| deviceId | Yes | Device ID to get information for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no annotations, so it must carry the full burden of behavioral disclosure. It only states that the tool gets information, but does not mention whether the operation is read-only, what 'detailed information' includes, any authentication requirements, or potential error conditions. The agent has no idea what to expect from the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is easy to parse and front-loaded with the core action. No unnecessary words or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get tool with one fully documented parameter, the description is minimally viable. However, there is no output schema and the description does not explain what 'detailed information' includes, nor does it provide usage context relative to sibling tools, so it is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents the only parameter (deviceId) with a clear description, so baseline is 3. The tool description adds no additional meaning or context to the parameter beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get detailed information about a specific device' uses a specific verb (get) and resource (device), clearly differentiating it from sibling tools that perform actions like pairing, blocking, or messaging. It is immediately clear what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. It does not mention, for example, that flix_discover_devices lists devices and this tool retrieves details for one specific device, nor does it state any exclusions or prerequisites. Usage context is only implied by the phrase 'specific device'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flix_get_messagesC
Get message history
| Name | Required | Description | Default |
|---|---|---|---|
| deviceId | No | Filter messages by device ID (optional) | |
| unreadOnly | No | Only return unread messages (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for disclosing behavior. 'Get message history' implies a read operation, but it doesn't state whether the call is read-only, whether it affects read/unread status, or what the response structure is. This is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler words, making it highly concise. However, the brevity comes at the cost of missing key information, so it scores slightly lower than a perfect 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two optional parameters and no output schema, the description must compensate by explaining the context. It fails to mention what constitutes message history, how it relates to device pairing or file transfers, or what the expected return format is. This makes it inadequate for an agent to invoke confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for both parameters (deviceId and unreadOnly), achieving 100% coverage. The description adds no extra parameter semantics, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('message history'), clearly indicating the tool retrieves message history. It distinguishes from siblings like flix_send_text or flix_get_clipboard because none of them retrieve message history. However, it doesn't elaborate on the type of messages, so it is clear but basic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool or how it relates to alternatives. No mention of prerequisites, use cases, or exclusions. With no annotation context, an agent would need to infer the use case from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flix_get_transfer_statusC
Get file transfer status
| Name | Required | Description | Default |
|---|---|---|---|
| transferId | Yes | Transfer ID to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits, but it only says 'Get' with no mention of side effects, safety, return format, or potential errors. The tool's behavior is essentially opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no unnecessary words. It is efficiently front-loaded and does not waste characters, earning high marks for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of one parameter and no output schema, the description is minimal but lacks essential context such as what statuses are possible, how to interpret results, and whether any prerequisites exist. A more complete description would mention typical usage or expected output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents the single parameter 'transferId' with description 'Transfer ID to check', so schema coverage is 100%. The tool description adds no extra meaning beyond the schema, and the baseline of 3 is appropriate since the schema handles parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get file transfer status' clearly states the action (get) and resource (file transfer status), making the tool's purpose evident. It is distinct from sibling transfer tools like cancel/pause/resume which focus on control actions, though it does not elaborate on what 'status' entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, such as after starting a transfer or in conjunction with send/receive operations. No prerequisites or context for use are implied, leaving the agent without directional cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flix_pair_deviceC
Pair with a Flix device
| Name | Required | Description | Default |
|---|---|---|---|
| deviceId | Yes | Device ID to pair with |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for disclosing side effects, state changes, permissions, or idempotency, but it only states the action without any such detail. For a pairing operation, the agent is left unaware of what actually happens.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and focused, but it sacrifices essential context for brevity. It is not a tautology, yet it under-specifies, making it borderline between concise and incomplete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and only one parameter, the description should explain prerequisites and consequences, but it does not. The overall tool complexity is low, yet the description still fails to provide sufficient behavioral or usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the single deviceId parameter with 100% coverage, so the description adds no additional semantic value. The baseline of 3 is appropriate because the schema handles parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Pair' with the clear resource 'Flix device', distinguishing it from sibling tools like flix_unpair_device and flix_block_device. It unambiguously identifies the core action without confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as whether pairing is a prerequisite for sending files or if devices need to be discovered first. No exclusions or alternative tool mentions are present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flix_pause_transferB
Pause an ongoing file transfer
| Name | Required | Description | Default |
|---|---|---|---|
| transferId | Yes | Transfer ID to pause |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It simply states 'pause' without explaining whether the pause is reversible, what happens to the transfer state, or any side effects. This is insufficient for a tool that modifies the state of a transfer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundant words. It is efficient and front-loaded, but it is so minimal that it may be under-specified rather than properly concise. Still, it earns a high score for being succinct and direct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is minimally adequate but leaves gaps. It does not explain the effect of pausing, whether it can be resumed, or any error conditions. Sibling tools like resume and cancel provide context, but the description alone does not fully specify the operation's context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the single parameter 'transferId' with the description 'Transfer ID to pause', providing 100% coverage. The tool description adds no additional semantic detail about the parameter beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Pause an ongoing file transfer' clearly identifies the action (pause) and the resource (ongoing file transfer). It distinguishes itself from sibling tools like resume and cancel by specifying the operation type, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives like cancel or resume. It implies applicability to ongoing transfers but lacks guidance on prerequisites or scenarios where pause is preferred. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flix_receive_fileC
Accept and receive a file transfer
| Name | Required | Description | Default |
|---|---|---|---|
| transferId | Yes | Transfer ID to receive |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only says 'accept and receive' without explaining side effects, state changes, or whether it requires an active transfer. This lacks transparency for a mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short, but the phrase 'accept and receive' is redundant and not maximally efficient. It is not overly verbose, yet it under-specifies meaning, making it a borderline minimum.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a file transfer operation with one parameter, no output schema, and no annotations, the description is drastically incomplete. It does not explain the transfer lifecycle, what 'receiving' entails, or how it relates to siblings like pause or cancel. This is inadequate for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description covers 100% of parameters, with transferId described as 'Transfer ID to receive'. The description adds no additional semantics beyond the schema, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('receive') and resource ('file transfer'), making it distinct from sibling tools like flix_send_file. However, 'accept and receive' is somewhat redundant, which slightly reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, prerequisites (e.g., pairing, discovery), or the expected flow. The description is a bare statement with no contextual direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flix_resume_transferB
Resume a paused file transfer
| Name | Required | Description | Default |
|---|---|---|---|
| transferId | Yes | Transfer ID to resume |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states the action and provides no details on side effects, reversibility, error conditions, or prerequisites beyond 'paused'. This is a significant gap for a state-changing operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that front-loads the action and resource. Every word contributes value, with no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite being a simple tool, the lack of annotations and output schema means the description should provide more context about expected behavior, such as what happens if the transfer is not paused, whether the operation is idempotent, or what the result is. The current description is too minimal to be fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the only parameter (transferId) with 100% coverage. The description adds no additional semantic meaning beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('resume') and resource ('paused file transfer'), making the tool's purpose immediately clear. It also distinguishes itself from siblings like flix_pause_transfer and flix_cancel_transfer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'paused file transfer' implies the tool is used when a transfer is paused, but it does not explicitly state when to use it versus alternatives or what preconditions must be met. No exclusions or references to siblings are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flix_send_fileB
Send a file to a Flix device
| Name | Required | Description | Default |
|---|---|---|---|
| deviceId | Yes | Target device ID | |
| filePath | Yes | Local file path to send |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility for behavioral disclosure. It does not mention whether the send is asynchronous, whether the device must be online/paired, or any side effects such as overwriting files. This is a significant gap for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no unnecessary words. It conveys the core purpose efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool, the description is minimally viable. However, it lacks context about the transfer lifecycle, such as whether it returns a transfer ID or requires the device to be paired. Given the absence of an output schema and annotations, more contextual detail would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides clear descriptions for both parameters (deviceId and filePath), achieving 100% coverage. The description adds no additional semantic detail beyond what the schema offers, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action (send), the object (file), and the destination (Flix device). This clearly distinguishes it from sibling tools like flix_send_text and flix_receive_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any mention of prerequisites such as device pairing or relationship to transfer status tools. The description simply states what it does without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flix_send_textB
Send a text message to a Flix device
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text message to send | |
| deviceId | Yes | Target device ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action without mentioning side effects, required permissions, delivery guarantees, or what happens if the device is not paired or available. The description adds minimal behavioral context beyond the obvious 'send' action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that immediately states the tool's purpose. There is no redundant wording or unnecessary detail, making it highly concise and front-loaded. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, high schema coverage, no output schema), the description provides the basic purpose but lacks important contextual details. It does not mention that the device likely must be paired (given the sibling flix_pair_device) or describe expected return values or failure modes. It is minimally adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% according to context signals, so the input schema already documents both parameters ('Text message to send' and 'Target device ID'). The tool description adds no extra parameter semantics beyond what the schema provides, which aligns with the baseline score of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Send a text message to a Flix device' clearly states the specific verb (send) and resource (text message to a Flix device). It distinguishes itself from siblings like flix_send_file (sends a file) and flix_sync_clipboard (syncs clipboard), making the tool's purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites such as the device needing to be paired (especially given the sibling flix_pair_device). No exclusions or alternative tool references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flix_sync_clipboardC
Sync clipboard content to a Flix device
| Name | Required | Description | Default |
|---|---|---|---|
| deviceId | Yes | Target device ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only states the action. It does not explain whether the operation overwrites clipboard content, whether the device must be online or paired, or what side effects occur. This lack of detail makes the tool's behavior opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no redundant words, making it concise. It lacks deeper context, but for the limited length, it is structured well and immediately states the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the tool has only one parameter, the absence of annotations and output schema means the description must provide more context. It omits important details such as whether the local clipboard is read automatically, whether pairing is required, and what the result indicates, leaving the tool insufficiently specified for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the single parameter deviceId, which already provides a description ('Target device ID'). The tool description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (clipboard content) and direction (to a Flix device), which is reasonably specific. However, the verb 'sync' is less precise than alternatives like 'send' or 'push', and it does not explicitly differentiate this from sibling tools such as flix_send_text or flix_get_clipboard.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, such as device pairing, or situations where flix_send_text or flix_get_clipboard would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flix_unblock_deviceC
Unblock a Flix device
| Name | Required | Description | Default |
|---|---|---|---|
| deviceId | Yes | Device ID to unblock |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states the action and does not mention reversibility, permissions, side effects, or what the result of unblocking a device looks like. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no filler or extraneous information. It is concise and front-loaded, though it could have included more meaningful details in the available space without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool description is extremely minimal, with no output schema and no context about return values, side effects, or usage scenarios. Given the complexity of the sibling toolset (block, unpair, pair, etc.), the description is insufficient for an agent to decide when to use this tool and what to expect after invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single deviceId parameter, including a clear description. The tool description adds no additional parameter context, so the schema itself already provides the necessary semantics. The baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Unblock a Flix device' states the action and resource clearly, but it is vague about what 'unblocking' entails and does not differentiate it from similar operations like flix_unpair_device or flix_block_device. It is not a tautology but lacks sufficient specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, typical scenarios, or exclusions. Without this context, an agent cannot determine when unblocking is appropriate compared to un/pairing or other device management actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flix_unpair_deviceC
Unpair from a Flix device
| Name | Required | Description | Default |
|---|---|---|---|
| deviceId | Yes | Device ID to unpair from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description is the sole source of behavioral information, but it merely restates the tool name. It fails to disclose any side effects, reversibility, required permissions, or consequences of unpairing, making it essentially a tautology.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is short, it is under-specified and adds little value: 'Unpair from a Flix device' essentially restates the tool name. It is not structured to front-load key information and does not earn its place as a meaningful guide.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description should provide more context about the unpairing operation, such as whether it affects ongoing transfers or requires specific device states. The description is too minimal for an agent to fully understand the tool's behavior beyond the basic action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the only parameter ('deviceId' with a clear description), and with 100% schema coverage, the description does not need to add parameter details. However, the description adds no additional semantic context beyond the schema, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Unpair') and the resource ('a Flix device'), using a specific verb that distinguishes it from siblings like pair, block, and send. However, it lacks any additional context about the scope or effect of unpairing, so it stops short of a more detailed purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as block/unblock or unpairing for a different reason. It does not mention prerequisites, exclusions, or conditions, leaving the agent without a clear decision framework.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct action on a distinct resource: device discovery/info, pairing, blocking, messaging, file transfer control, and clipboard sync. Even paired tools like send_text/send_file or sync_clipboard/get_clipboard are clearly separated by purpose, leaving no ambiguity.
All tool names follow a uniform flix_<verb>_<noun> pattern, with consistent verb choices like get, send, pair, block. The prefix and structure are predictable, making it easy to infer behavior from the name alone.
16 tools might exceed the typical 3-15 range, but each tool earns its place in a comprehensive device management server. The count is well-scoped across six logical domains (discovery, pairing, blocking, messaging, file transfer, clipboard) with no redundant tools.
The tool surface covers the full lifecycle for device interactions: discover, pair, block, send/receive text and files, manage transfers (status/cancel/pause/resume), and sync clipboard. No obvious gaps for the stated purpose of controlling and communicating with Flix devices.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Free no-signup file transfer, handoff & scratchpad memory for AI agents. Share files by url.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceActs as a bridge between Claude's desktop application and the Cursor editor, enabling seamless AI-powered automation and multi-instance management across platforms with standardized communication and secure token-based authentication.1367MIT
- FlicenseNot gradedqualityDmaintenanceBridges Claude Desktop to local and remote ComfyUI instances, enabling health checks, model listing, workflow queuing, status polling, and output retrieval.
- FlicenseNot gradedqualityDmaintenanceEnables natural language command and control of remote systems across multiple platforms through Claude AI using the Model Context Protocol.8
- AlicenseAqualityAmaintenanceEnables AI agents like Claude Code, Codex, and Perplexity to call each other as tools directly from the terminal, supporting text, code, images, and PDFs passed by file path.442Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/flix-pro/flix-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server