search_errors / search_logs / search_traces silently ignore an unknown `projectSlugOrId` argument
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 48/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- typescript
- 领域
- api
调研方向
Start by comparing the input schemas of search_issues and search_errors, which name the project argument differently (projectSlugOrId vs projectSlug), and check how the other search tools (search_logs, search_traces, and the rest) declare theirs. Reproduce by calling search_errors with projectSlugOrId and confirming the result link has no project parameter. Done when an unknown project key is rejected or the same argument name works on every search tool, and executedSearch shows the applied project scope. The maintainers still need to choose between the two expected fixes.
由索引模型根据 Issue 内容生成。
描述
search_issues takes its project as projectSlugOrId, and its own tool description shows that name in its examples and hints. The other search leaves (search_errors, search_logs, search_traces, search_metrics, search_profiles, search_replays) take projectSlug instead. An agent that has just used search_issues often reuses projectSlugOrId on search_errors.
The input schemas don't set additionalProperties: false, so the unknown key is accepted and dropped without any error or warning. The search then runs across the whole organization, even though the caller asked for one project.
Reproduction
Use an organization example-org with projects php-app (ID 123) and go-service:
search_errors(
organizationSlug="example-org",
projectSlugOrId="php-app",
query="errors in the last 24 hours grouped by error type with counts"
)
- The call succeeds.
- The result link has no
projectparameter:...&query=&field=error.type&field=count%28%29&statsPeriod=24h... - The rows include Go error types (
*fmt.wrapError,context.deadlineExceededError) fromgo-service.
The same call with projectSlug="php-app" scopes correctly: the link has project=123, and only php-app errors come back.
executedSearch.query is "" in both responses, because the project filter is a separate request parameter. The response gives the caller no sign that the filter was dropped.
Expected
Either of these would prevent the silent cross-project result:
- Reject unknown arguments (strict input schemas, or a validation error that names the unknown key and the expected one).
- Accept the same project argument name on every search tool (for example, accept
projectSlugOrIdas an alias ofprojectSlug, or the other way round).
It would also help to show the applied project scope in executedSearch, so callers can check it.
Environment
Remote MCP at https://mcp.sentry.dev/mcp, called through our MCP gateway, which forwards tool arguments unchanged.
- 主要语言
- TypeScript
- 星标
- 961
- 派生
- 179
- 平均合并
- 15 小时 33 分钟
- 30 天内合并 PR
- 476
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
getsentry/toolkit 的其他 Issue
-
MCP mcp-feedback-pattern
难度 2/5 1-3 小时 新手友好度 78/100
getsentry/toolkit#2276 · 1 条评论 ·
维护者通常 1 天内回复
-
CLI enhancement MCP
难度 2/5 1-3 小时 新手友好度 63/100
getsentry/toolkit#1908 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
getsentry/toolkit#1471 · 1 条评论 ·
维护者通常 1 天内回复
-
get_sentry_resource gives no guidance for Explore > Errors list URLs可能已有人在做 @sentry-junior 今天认领。 未关闭MCP mcp-feedback-pattern
难度 2/5 1-3 小时 新手友好度 32/100
getsentry/toolkit#2278 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 3/5 1-2 天 新手友好度 65/100
getsentry/toolkit#2275 · 1 条评论 ·
维护者通常 1 天内回复
查看 getsentry/toolkit 的全部 Issue
相似的 Issue
-
Add: BOM Cine未关闭approved check:passed streams:add
难度 1/5 1 小时以内 新手友好度 72/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
bug platform-android
难度 2/5 1-3 小时 新手友好度 68/100
Termix-SSH/Mobile#146 · 1 条评论 ·
维护者通常 2 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 66/100
devswha/herdr-web-ui#3875 ·
-
难度 1/5 1 小时以内 新手友好度 88/100