forcedotcom / forcedotcom/mcp-hosted

[Bug]: All semantic-model detail reads fail on analytics/tableau-next (GA) and tableau-next-pilot; list tools work

Open
#49 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
135
Forks
20
PR merge metrics
No merged PRs in 30d

Description

### Summary

Every semantic-model **detail** read fails on both Tableau Next MCP servers while every **list** tool works. This is not a beta-only problem: it reproduces identically on `analytics/tableau-next`, the GA server. Because building or even inspecting a visualisation requires reading the model, this blocks the semantic-model path through MCP entirely.

### Environment

Production org (Enterprise Edition), API v67. Client: Claude Code via a pre-registered External Client App (public client, PKCE, `mcp_api` scope). Servers: `analytics.tableau-next` (GA, 19 tools, all `readOnlyHint`) and `analytics.tableau-next-pilot` (132 tools). Observed on the pilot server 2026-08-25 and on the GA server 2026-09-02.

### What fails

All six calls were made with model ids returned by `list_semantic_models` in the same session, so the ids are known good. Tried against three different models, by `apiName` and by record id, on both servers.

| Tool | Result |
|---|---|
| `get_semantic_model` | `Unexpected error while invoking tool getSemanticModel` |
| `list_semantic_model_data_objects` | `Unexpected error while invoking tool getSemanticModelDataObjects` |
| `list_semantic_model_dimensions` | `Unexpected error while invoking tool getSemanticModelDimensions` |
| `list_semantic_model_measures` | `Unexpected error while invoking tool getSemanticModelMeasures` |
| `list_semantic_model_metrics` | `Unexpected error while invoking tool getSemanticModelMetrics` |
| `list_semantic_model_relationships` | `Unexpected error while invoking tool getSemanticModelRelationships` |

### What works

`list_semantic_models` (15 models), `list_workspaces` (8), `list_dashboards` (27), `list_visualizations` (92), `search_assets`, and `get_dashboard`, which returns all 26 widgets of a dashboard with their viz sources and filters, including filters bound to a custom semantic model. So the models exist, are readable by this user, and are reachable by other tools in the same session.

### Why this matters

The error is generic (`Unexpected error while invoking tool`) with no id, field or permission named, so there is nothing for a caller to act on. The consistent list-works / detail-fails split across six tools and two servers points at a shared handler rather than at data or permissions.

### Secondary observation, response shapes are inconsistent

Within `analytics/tableau-next`, `list_dashboards` returns a `dashboards` key, `list_workspaces` a `workspaces` key and `list_visualizations` a `visualizations` key, but `list_semantic_models` returns `items` with `count`, `total` and paging URLs. A shared parser silently reports zero results for whichever shape it was not written against. Worth normalising, or documenting per tool.

### Suggested resolution

Fix the detail handler, and in the meantime return an error that names the cause. Given this is present in GA, it deserves a known-issues note.

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the six failing semantic-model detail tools on both analytics/tableau-next and analytics/tableau-next-pilot using ids from list_semantic_models, then compare their shared handling with the working list tools. Done means detail reads succeed and failures identify their cause; also verify whether the inconsistent list response keys require normalisation or documentation.

Written by the indexing model from the issue text.

Assessment

Domain
api, backend-api-design
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.