- Shell 100%
|
|
||
|---|---|---|
| .claude-plugin | ||
| plugins/b-tech-portal | ||
| .gitignore | ||
| build.sh | ||
| LICENSE | ||
| README.md | ||
B-Tech Portal — Claude Code plugin
Read and write the B-Tech Portal from inside Claude Code.
A partner-scoped Streamable HTTP MCP server, plus a few skills for common workflows.
What this plugin does
When installed, this plugin adds:
- One MCP server (
b-tech-portal) wired tohttps://portal.b-tech.io/mcp/agent, exposing 11 tools across workspaces, documents, files, and tasks. - Three skills:
/b-tech-portal:portal-setup— first-run token setup walkthrough./b-tech-portal:portal-overview— summarize your workspaces, open tasks, recent docs./b-tech-portal:portal-find <query>— search across your workspaces.
All actions go through your bearer token and are attributed to your partner identity in the portal's audit log. The plugin sees only the workspaces you're already a member of.
Install
The repo is a Claude Code plugin marketplace — one catalog (marketplace.json at the root) listing the b-tech-portal plugin in plugins/b-tech-portal/.
Claude Code Desktop (preferred)
- Open Customize (left sidebar) → Personal plugins → + → Create plugin → Add marketplace.
- Paste the repo URL:
https://git.b-tech.io/prohive/b-tech-portal-plugin.git. - Claude Code clones the repo, reads
marketplace.json, and shows theb-tech-portalplugin. Click Install.
⚠ The
.gitsuffix matters. Without it, Claude Code tries to fetch the URL as a direct link tomarketplace.json, gets HTML back (Forgejo's repo page), and fails withInvalid input: expected object, received string. With.git, it correctly clones the repo. GitHub URLs have a built-in heuristic that handles this; non-GitHub hosts like Forgejo need the explicit suffix.
The repo is public-read on Forgejo — no account or credentials needed to install. (Write access remains restricted to the B-Tech team.)
Claude Code CLI
# Add the marketplace, then install the plugin from it.
/plugin marketplace add https://git.b-tech.io/prohive/b-tech-portal-plugin.git
/plugin install b-tech-portal@b-tech-marketplace
Fallback — upload .mcpb directly
If you can't reach the marketplace repo, install the bundled .mcpb file:
- Download
dist/b-tech-portal-<version>.mcpbfrom the repo (or ask the B-Tech team for the file). - Claude Code Desktop → Customize → Personal plugins → + → Create plugin → Upload plugin → pick the file.
The .mcpb is a versioned snapshot. Updates require a fresh download; the marketplace path auto-updates on /plugin marketplace update.
Setup (one time)
The MCP server needs your partner-scoped bearer token. Run:
/b-tech-portal:portal-setup
…and follow the walkthrough. Short version:
- Log into https://portal.b-tech.io, open
/p/me/agent, pass step-up TOTP, click Issue new token, copy the token. - Store as
PORTAL_AGENT_TOKENenv var (shell profile or OS keychain). - Restart Claude Code Desktop.
Verify with /b-tech-portal:portal-overview — if you see workspace data, you're connected.
Tools exposed
| Tool | Purpose |
|---|---|
workspace_list |
Your memberships + roles |
workspace_get |
One workspace by slug |
doc_list |
Documents in a workspace |
doc_read |
Read a document's content |
doc_replace |
Replace a document's content (write) |
file_list |
Attachments in a workspace |
file_upload |
Upload an attachment (multipart, base64) |
file_download |
Download an attachment |
task_list |
Tasks in a workspace |
task_create |
New task |
task_update |
Mutate a task (status, assignee, priority) |
Constraints
- Workspace-scoped. Your token sees only workspaces you're a member of in the portal. The plugin cannot bypass this — and there is no "elevate" mode.
- Append-only audit. Every call writes a row to
audit.access_log. Tokens are not anonymous; revoke + re-issue if a token leaks. - Step-up TOTP for token issuance. New tokens require a fresh TOTP within the last 5 minutes — you'll be prompted at
/p/me/agentif it has expired. - Token revocation is instant. Portal →
/p/me/agent→ Revoke. No step-up required for revocation.
Updating
Bump version in plugins/b-tech-portal/.claude-plugin/plugin.json and rebuild:
./build.sh
Users on the marketplace path update via Customize → Personal plugins → b-tech-portal → Update, or in the CLI: /plugin marketplace update b-tech-marketplace. Users on the .mcpb upload path need a fresh download.
Repo layout
b-tech-portal-plugin/
├── .claude-plugin/
│ └── marketplace.json # catalog: lists plugins in this repo
├── plugins/
│ └── b-tech-portal/
│ ├── .claude-plugin/
│ │ └── plugin.json # plugin manifest (name, version, author)
│ ├── .mcp.json # MCP server config (HTTP → portal /mcp/agent)
│ └── skills/
│ ├── portal-setup/SKILL.md
│ ├── portal-overview/SKILL.md
│ └── portal-find/SKILL.md
├── dist/
│ └── b-tech-portal-<version>.mcpb # fallback bundle
├── build.sh
├── README.md
└── LICENSE
License
MIT. See LICENSE.