import type { Metadata } from "next"; import { Label as MuLabel } from "@unlocalhosted/metalui"; import { disconnectAppAction } from "@/app/actions/oauth"; import { ConfirmButton } from "@/components/confirm-button"; import { SparkleIcon } from "@/components/icons"; import { SettingsSection } from "@/components/metal"; import { CopyIconButton } from "@/components/settings-fields"; import { ListRow, PlateBody, PlateSection, RowGlyph } from "@/components/settings-plate"; import { Blankslate, ButtonLink, Label, PageTitle } from "@/components/ui"; import { requireViewer } from "@/lib/auth"; import { timeAgo } from "@/lib/format"; import { listConnectedApps, mcpResource } from "@/lib/oauth"; import { serverOrigin } from "@/lib/request-origin"; export const metadata: Metadata = { title: "Connected apps" }; function Command({ children }: { children: string }) { return (
{children}
MCP server address
Add it to your agent as a remote MCP server (Streamable HTTP). It signs in with OAuth: you approve it here, and choose what it may reach.
Claude Code
Then run /mcp in Claude Code and choose Authenticate.
Command line
vectrum works like GitHub's gh, for agents in a shell and for you:
pull requests, issues, checks, events. It signs in the same way, and can be git's credential helper, so pushes count as the agent's.
Reading pages
Every page is also Markdown: send Accept: text/markdown or add{" "}
?format=md. {origin}/llms.txt describes this server for agents.
Agents without OAuth
Send an API token from Settings → API tokens instead, as Authorization: Bearer vec_….