# Reported issues for thingctx

Pod holds 7 of 7 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [thingctx](/mcp/thingctx).

## Most discussed

### Port the MCP bridge to mcp 2.0

# Port the MCP bridge to mcp 2.0

`mcp` 2.0 redesigned the server API and the bridge has not been ported. There is
no version cap, so `pip install thingctx[mcp]` already resolves 2.x and
`build_mcp_server()` raises `AttributeError: 'Server' object has no attribute
'list_tools'`. The module still imports; it breaks when you build the server.

All of it lives in `src/thingctx/integrations/mcp.py`.

## What changed

| 1.x | 2.0 |
|---|---|
| `@server.list_tools()` and the other eight decorators | c

[Read the thread](https://github.com/thingctx/thingctx/issues/121) · 2026-08-02 · open · 6 comments

### Authorize each bridged call against the caller on the request, not the server's identity

### What is this

`build_mcp_server` takes one `ThingClient`, so the bridge decides every call against the
same identity for the life of the server. Two people on one bridged server get the same
answer, even when one should be able to write and the other only read.

Over stdio that is unavoidable: there is no request to read a caller from. Over
streamable HTTP it is not. MCP wants an `Authorization` header on every request, and the
SDK hands you the validated token per request. We ignore it.

##

[Read the thread](https://github.com/thingctx/thingctx/issues/49) · 2026-07-25 · closed · 2 comments

### Port MCP baseline examples to MCP 2 APIs

The production MCP bridge and integration tests are being ported to MCP 2 in #121, but two examples still depend on MCP 1 APIs:

- `examples/01_mcp_baseline.py`
- `examples/_measure.py`

Once the dependency floor moves to `mcp>=2`, the MCP-specific paths in these examples become stale.

They currently rely on APIs that changed or were removed in MCP 2, including the old in-memory connection helper, MCP 1-style model fields, and older server/client lifecycle assumptions.

This issue is to port th

[Read the thread](https://github.com/thingctx/thingctx/issues/135) · 2026-08-15 · open · external user · 1 comment

### Validate runtime action and property inputs against TD schemas

### What are you trying to do

While working on #121, I found that ThingCtx does not currently apply general runtime JSON Schema validation to action inputs or writable property values before they reach a binding.

MCP 1 happened to validate listed tool arguments against each tool's `inputSchema` before invoking the bridge. During the MCP 2 port that exposed a wider gap: outside that MCP-specific behavior, ThingCtx itself does not enforce the TD schema on runtime values.

For example, if an acti

[Read the thread](https://github.com/thingctx/thingctx/issues/134) · 2026-08-15 · open · external user · 1 comment

### Redis Transport Issue

### What happened

get_message(timeout=None) blocks forever, so a silently dead connection hangs with no health check and no way out. 

I'll work on fixing this.

[Read the thread](https://github.com/thingctx/thingctx/issues/133) · 2026-08-14 · open · outside contributor · 0 comments

### Add a WebSocket transport binding

### What is this
thingctx ships five bindings: http, local, mqtt, media (rtsp) and exec. None speaks WebSocket, and `docs/MAPPING.md` records it as not implemented. WebSocket is how many live dashboards, home hubs and robot bridges push state; the README already describes a Thing that calls actions over HTTP and receives its events over WebSocket, and that half has no transport behind it.

The shape is an open question. W3C publishes protocol bindings for HTTP, CoAP, MQTT, Modbus, BACnet, LoRaWA

[Read the thread](https://github.com/thingctx/thingctx/issues/96) · 2026-07-25 · open · 0 comments

### Add a worked Copilot (VS Code) example, and clarify direct vs bridge

For a closed agent like Copilot in VS Code, the integration path is the MCP bridge, not direct tool calling. That isn't obvious today: someone can reasonably try the direct path first and end up writing tool-call glue, because Copilot only accepts tools through MCP.

Add a short signpost (direct is for agents whose loop you own; closed agents use the bridge) and a worked, copy-paste Copilot example.

Raised by a user at the W3C WoT Community Group meetup.

[Read the thread](https://github.com/thingctx/thingctx/issues/23) · 2026-07-03 · open · 0 comments

## Most recent

The remaining reports are on [the project's issue tracker](https://github.com/thingctx/thingctx/issues).
