Skip to content

feat(mcp): add native resources, prompts, and structured output schemas#360

Open
enjoyandlove wants to merge 5 commits into
JSONbored:mainfrom
enjoyandlove:feat/273-mcp-native-resources-prompts-schemas
Open

feat(mcp): add native resources, prompts, and structured output schemas#360
enjoyandlove wants to merge 5 commits into
JSONbored:mainfrom
enjoyandlove:feat/273-mcp-native-resources-prompts-schemas

Conversation

@enjoyandlove
Copy link
Copy Markdown
Contributor

@enjoyandlove enjoyandlove commented Jun 4, 2026

Summary

Closes #273

Scope

  • This PR is focused and does not mix unrelated backend, UI, MCP, docs, dependency, and deploy changes.
  • This follows CONTRIBUTING.md and does not reintroduce GitHub Pages, VitePress, site/, or CNAME.
  • I linked an issue, or this is small enough that the summary explains why an issue is not needed.

Validation

  • git diff --check — clean
  • npm run actionlint — clean
  • npm run typecheck — clean
  • npm run test:coverage — 878 passed, branches 97.03% (above 97% threshold)
  • npm run test:workers — passed
  • npm run build:mcp — clean (node --check passes on all three MCP entry points)
  • npm run test:mcp-pack — dry-run ok, all expected files present
  • npm run ui:openapi:check — artifact is fresh
  • npm run ui:lint — clean
  • npm run ui:typecheck — clean
  • npm run ui:build — clean
  • npm audit --audit-level=moderate — 0 vulnerabilities
  • New or changed behavior has unit/integration tests for new branches, fallback paths, and sanitizer boundaries — three new test files: mcp-output-schemas.test.ts (4 tests), mcp-miner-prompts.test.ts (8 tests), mcp-discovery.test.ts (16 tests)

If any required check was skipped, explain why:

Safety

  • No secrets, wallet details, hotkeys, coldkeys, user PATs, private keys, raw trust scores, private rankings, or private maintainer evidence are exposed. Prompt text is static advisory copy; tests assert no credential key=value patterns or trust-score claims appear in prompt output.
  • Public GitHub text stays sanitized, low-noise, and does not imply compensation guarantees or optimization tactics. All prompts explicitly forbid reward prediction, payout estimates, and compensation language.
  • Auth, cookie, CORS, GitHub App, Cloudflare, or session changes include negative-path tests. N/A — no auth surface changed.
  • API/OpenAPI/MCP behavior is updated and tested where needed. Resource discovery, prompt discovery, outputSchema shape, and content safety all tested via MCP client transport.
  • UI changes use live API data or real empty/error/loading states, not production mock/demo fallbacks. N/A — no UI changes.
  • Visible UI changes include screenshots or a short recording. N/A — no UI changes.
  • Public docs/changelogs are updated where needed. N/A — changelog updated at release only per CONTRIBUTING.md.

Notes

  • All prompts use plain argsSchema shapes (not z.object()) for compatibility with the MCP SDK's zod version boundary; the SDK's internal zod v3 and the package's zod v4 do not mix through the tool() high-level API.
  • The gittensory_local_status_structured tool mirrors gittensory_local_status with an added outputSchema; existing integrations using the unschematized tool are unaffected.
  • Resource reads fail gracefully: gittensory://changelog returns "Changelog not available." if the file is missing; gittensory://compatibility returns a static unavailable payload if the API is unreachable.
  • No prompt performs any GitHub write autonomously — all output is advisory and presented for human review before action.

@enjoyandlove enjoyandlove requested a review from JSONbored as a code owner June 4, 2026 03:08
@dosubot dosubot Bot added the size:XS This PR changes 0-9 lines, ignoring generated files. label Jun 4, 2026
@github-actions github-actions Bot added the feature New feature or request label Jun 4, 2026
Signed-off-by: Chan <101856681+enjoyandlove@users.noreply.github.com>
@superagent-security superagent-security Bot added pr:flagged PR flagged for review by security analysis. and removed pr:flagged PR flagged for review by security analysis. labels Jun 4, 2026
@superagent-security superagent-security Bot added pr:flagged PR flagged for review by security analysis. and removed pr:flagged PR flagged for review by security analysis. labels Jun 4, 2026
@superagent-security
Copy link
Copy Markdown

Superagent found 1 security concern(s).

P2: Unreviewable binary ZIP added to public downloads directory

PR adds unreviewable binary ZIP in public downloads directory.

Remove binary or provide reproducible build and checksum attestation.

AI prompt
Check if this security scanner issue is valid. If so, understand the root cause and fix it. If appropriate, update or add tests. Keep the change focused and preserve intended behavior.

<file name="apps/gittensory-ui/public/downloads/gittensory-extension.zip">
<violation number="1" location="apps/gittensory-ui/public/downloads/gittensory-extension.zip">
<priority>P2</priority>
<title>Unreviewable binary ZIP added to public downloads directory</title>
<evidence>PR adds a binary blob (gittensory-extension.zip) that cannot be diff-reviewed. Binary files in public downloads may hide malicious payloads and bypass code review.</evidence>
<recommendation>Require the author to either remove the binary, replace it with a reproducible build script, or provide a checksum/attestation and independent verification of the ZIP contents.</recommendation>
</violation>
</file>

@superagent-security superagent-security Bot removed the pr:flagged PR flagged for review by security analysis. label Jun 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature or request size:XS This PR changes 0-9 lines, ignoring generated files.

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

feat(mcp): ship native resources prompts and output schemas

1 participant