Skip to content

agent, cli, docs: monid() managed tool catalog and platform secret scope - #858

Open
devin-ai-integration[bot] wants to merge 2 commits into
mainfrom
feat/monid-managed-catalog
Open

devin-ai-integration[bot] wants to merge 2 commits into
mainfrom
feat/monid-managed-catalog

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Templates gain a full external tool catalog without asking the installer for a single key. monid() — or naming "monid" as an MCP server — attaches the managed Monid catalog (https://mcp.monid.ai/v1: discover/inspect/run meta-tools over ~1700 tools across 55+ providers) and the compiler emits a platform-scoped MONID_API_KEY secret header, which the platform's egress edge substitutes from its own credential (companion blue PR adds that scope).

  • @opencomputer/agent: monid() helper returning a catalog marker useMcpServer()/useFetch() accept; useSecret() gains scope: "platform" for connection headers.
  • @opencomputer/cli (compileAgent): on monid() or useMcpServer("monid") emits MANAGED_MONID_CONNECTION + MANAGED_MONID_MCP_SERVER into the deployment manifest. A project that defines its own monid connection or server wins a bare "monid" selection; an explicit monid() call alongside one is a compile error (the id is reserved for the managed catalog).
  • docs: "Managed catalogs" section on agents/mcp.mdx.

Merge order: blue (platform scope) → this PR → template PRs that adopt monid().

Link to Devin session: https://app.devin.ai/sessions/f74b8cc046c94dc583e998a6153ee14a
Open in Devin Desktop: https://app.devin.ai/desktop/session/f74b8cc046c94dc583e998a6153ee14a?variant=devin
Requested by: @motatoes


Devin Review

Polylane reviews this pull request when you ask:

Review with Polylane

Templates gain tools without asking the installer for keys: calling
monid() (or naming "monid" as an MCP server) attaches the managed Monid
catalog — discover/inspect/run meta-tools over hundreds of providers —
with the credential supplied by the platform at the egress edge.

- @opencomputer/agent: monid() helper selecting the managed catalog;
  useSecret() gains a "platform" scope for connection headers
- @opencomputer/cli: emit the managed mcp.monid.ai connection + server on
  monid() or useMcpServer("monid"); a project's own monid definitions
  win a string selection, while an explicit monid() call is a conflict
- docs: managed catalogs section on the MCP page

Co-Authored-By: Mohamed <mo@digger.dev>
@mintlify

mintlify Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
opencomputer 🟢 Ready View Preview Oct 8, 2026, 5:25 AM

💡 Tip: Enable Automations to automatically generate PRs for you.

@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration devin-ai-integration Bot left a comment •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👀 2 findings need your review

Devin fixed 2 of 4 findings on c08c79c.

For your review (2)

  • Custom connection leaves catalog undefined
  • Platform credential reaches arbitrary origins

Fixed by Devin (2)

  • Managed catalog requires an installer secret
  • Re-exported catalog lacks a deployment binding

View all findings in Devin Review

Devin Review

- buildTemplateProject skips platform-scoped headers: they are supplied
  by the platform at the egress edge, never an install-time secret the
  installer is asked to enter
- monid() detection resolves re-export chains through the project's own
  modules (export { monid } from "@opencomputer/agent" in a barrel
  keeps the helper recognized at its call site), including namespace
  imports and export *
- isTypeOnly lives on the import clause, not the declaration

Co-Authored-By: Mohamed <mo@digger.dev>

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

Devin Review

This branch was successfully deployed

1 active (outdated) deployment
staging - docs — c08c79c7 Deployed Oct 8, 2026 by mintlify[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant