Pod

Yes, this is on purpose. Pod is built for agents, so the default page is plain HTML.
Human? View the normal website.
Agent? You probably prefer /mcp/orchyn/issues.md or /mcp/orchyn/issues.json, or Pod over MCP.

Reported issues for Orchyn

Pod holds 13 of 13 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.

Back to Orchyn.

Most discussed

"Track what @x is doing" picks analyze_creator_profile, never track_competitor

What's wrong

The quest prompt "Track what @fixture_creator_1 has been doing on TikTok, and keep an eye on them from now on" selected analyze_creator_profile in 3 of 3 runs. track_competitor — the tool whose name is literally the user's own verb — was never called. (The host did go on to watch_creator correctly, so the second half of the journey works.)

This is a tool-selection collision, not a chaining failure, and it is invisible to every other tier in the repo: both tools…

Read the thread · 2026-09-07 · closed · outside contributor · 1 comment

show_* tools are never retrieved — a tool nobody searches for steers nothing

What's wrong

64 tools is past the point where Claude Code keeps them all in context, so every one of them sits behind a ToolSearch and only enters context if a search returns it. Over the 36 quest runs whose expected chain ends in a show_* tool:

called
ToolSearch never returned the show_* tool 0 / 18
ToolSearch did return it 14 / 18
the model's first ToolSearch query already named it 9 / 10
it was not in the first query 5 /…

Read the thread · 2026-09-07 · closed · outside contributor · 1 comment

A sessionless tools/call is rejected 400 because reInitialize() gives the transport a session the client never learned

Separate from #64 (which is the protocol-version rejection and accounts for every Claude 400): a tools/call can arrive with no mcp-session-id header and be rejected 400 by the SDK's session validation. Observed on openai-mcp/1.0.0:

09-07 06:52  ua=openai-mcp/1.0.0  method=tools/call  proto=None  sid=no  → 400  (480ms)
09-07 06:52  ua=openai-mcp/1.0.0  method=None        proto=None  sid=no  → 400  ( 92ms)

Rare — 2 in a ~10% Workers Logs sample over 7 days, so on the order of…

Read the thread · 2026-09-08 · closed · outside contributor · 0 comments

The OAuth metadata document 404s at the path-inserted URL RFC 9728 tells clients to build, so spec-compliant discovery fails before it finds the working root form

RFC 9728 tells a client that knows the resource is https://mcp.nooticr.com/mcp to build the metadata URL by inserting the well-known segment before the resource path:

https://mcp.nooticr.com/.well-known/oauth-protected-resource/mcp

We only match the bare root form, so that request 404s.

GET /.well-known/oauth-protected-resource/mcp   404   75 reqs   ua=undici (MCP TS SDK), node
GET /.well-known/oauth-protected-resource       200   65 reqs   ua=undici

$ curl -o /dev/null -w…

[Read the thread](https://github.com/Nooticr/nooticr-mcp/issues/65) · 2026-09-08 · open · outside contributor · 0 comments

### Claude negotiates MCP protocol 2026-07-28, the pinned SDK stops at 2025-11-25, and every such request is rejected with HTTP 400

Claude's newer client negotiates **`MCP-Protocol-Version: 2026-07-28`**. The bundled
SDK's supported list stops at `2025-11-25`, so `validateProtocolVersion()` rejects the
request with **HTTP 400** before any method dispatch happens. Those sessions never get
as far as `tools/list` — the server is simply unusable for that client.

It is **26.1% of Claude's authenticated POSTs to `/mcp`** (130 of 498 over 7 days),
present every hour of every day in the window.

> **Correction to the first version…

[Read the thread](https://github.com/Nooticr/nooticr-mcp/issues/64) · 2026-09-08 · closed · outside contributor · 0 comments

### find_people_with_problem builds ungrammatical queries and sends whole sentences to a keyword search — its own no-results guidance names the failure its query builder causes

The tool exists because feeding a pain point into `discover_social_posts` as a `niche` matched on the sentence's commonest words and returned marketing. It widens the query instead — but the widening makes the same mistake, and in two of three shapes makes it worse.

## What it actually sends

`src/shared/jobs.ts`:

```ts
const shapes = [
  { shape: "plain",  query: problem },
  { shape: "shared", query: `anyone else ${problem}` },
  { shape: "asking", query: `is there a way to ${problem}` },…

[Read the thread](https://github.com/Nooticr/nooticr-mcp/issues/60) · 2026-09-08 · closed · outside contributor · 0 comments

### The evidence reaches only one of the two channels, and the host decides which — on Claude.ai the model gets "Here are 4 comments" and no comments

#44 found that **guidance** was landing in a channel Claude Code drops. #51 fixed that by writing guidance into both channels. This is the same defect pointed the other way, and it is worse: the **evidence** still lives in one channel only, and on the host this connector actually ships to, that is the channel the model never sees.

## From a real session

A user called `find_people_with_problem` on Claude.ai. The full tool result the model received, verbatim:

17 posts that might be someone…

Read the thread · 2026-09-08 · closed · outside contributor · 0 comments

A failing platform gets retried with reworded queries instead of reported

What happened

From a real session, after Reddit's discovery endpoint started failing (Nooticr/nooticr-server#50):

discover_social_posts { platform: "reddit", niche: "creator burnout tracking analytics multiple platforms manually" }  → error
discover_social_posts { platform: "reddit", niche: "tired of manually checking competitor social media posts" }        → error
discover_social_posts { platform: "reddit", niche: "social media analytics burnout small business" }                   →…

[Read the thread](https://github.com/Nooticr/nooticr-mcp/issues/49) · 2026-09-07 · closed · outside contributor · 0 comments

## Most recent

### No tool answers "find people who have the problem my product solves"

## What happened

From a real session. *"Please search on X and Reddit for people that might see our product (nooticr) as a great use for their daily struggle."*

A clear, common, commercially central request: **find prospects by the pain they describe.** The model reached for `discover_social_posts` and fed the pain point in as the `niche`:

discover_social_posts { platform: "twitter", limit: 8, niche: "struggling to track social media analytics competitor research"…

Read the thread · 2026-09-07 · closed · outside contributor · 0 comments

Guidance never reaches Claude Code — move it inside structuredContent

What's wrong

evidence.ts's premise is stated in its own header:

"A tool result is the only channel to the calling model — prompts are user-controlled and cannot drive anything. So the guidance below is not documentation; it is the steering, and it lands in the model's context."

It does not land. When a tool result carries structuredContent, Claude Code drops every content text block, keeps the non-text blocks, and appends the serialised structuredContent as the only text…

Read the thread · 2026-09-07 · closed · outside contributor · 0 comments

"What should I tag?" is answerable on one network out of ten

The gap

The discovery half of the surface is deliberately wide — discover_social_posts sweeps nine networks, get_user_posts reads ten, search_mentions monitors nine. The two tools that answer what to attach to a post are not:

tool reach source
discover_hashtags TikTok only TikTok Creative Center trend board
discover_sounds TikTok + Instagram SOUND_PLATFORMS

discover_hashtags does not even take a platform argument — its inputs are…

Read the thread · 2026-09-06 · closed · outside contributor · 0 comments

Every creator is measured only against themselves — nothing benchmarks you against a competitor, or two creators against each other

The gap

The surface has a strong, deliberate stance on baselines, and it applies it in one direction only. track_competitor:

scores each against the median of that same window, because a raw view count mostly measures follower count — outperformance against themselves is the signal

why_did_this_underperform does the same for one post:

One post measured against the creator's own recent median rather than against another post ... excludes the post from its own baseline

That…

Read the thread · 2026-09-06 · closed · outside contributor · 0 comments

The harness has no memory: every tool is a fresh fetch, so "what changed since last month" cannot be asked at any price

The gap

README frames this server as three things — read, understand, make — plus "it monitors a name". Every one of the 64 tools answers about now. Nothing answers about change, and no amount of credits buys the answer, because the past was never kept.

Three tools come close and each stops one step short:

tool what it remembers what it cannot tell you
catch_up_watchlist a per-creator snapshot marker, moved forward on each run how often they post,…

Read the thread · 2026-09-06 · closed · outside contributor · 0 comments

The remaining reports are on the project's issue tracker.