Glean's plugin for Claude Code and Claude Cowork. This repo is a single-plugin marketplace.
Today it ships one plugin:
glean— adds two tools,discover_skillsandrun_tool, that let the agent discover Glean-hosted skills for enterprise apps (Jira, Slack, Google Workspace, Salesforce, etc.) and invoke their downstream tools via Glean's MCP gateway.
/plugin marketplace add askscio/glean-plugins-internal
/plugin install glean@glean-plugins-internal
- Open the plugin picker.
- Click Add marketplace, choose GitHub, and enter
askscio/glean-plugins-internal. - Once the marketplace syncs, install the glean plugin from it.
The first tool call triggers an OAuth sign-in to Glean. A browser window
opens automatically with a sign-in URL. The tool call returns
[AUTHENTICATION_REQUIRED] with the URL.
- Tell the user authentication is needed and share the sign-in URL.
- Wait for the user to complete sign-in in the browser.
- Retry the original tool call — it will succeed once the browser callback completes.
After sign-in, the OAuth credentials are cached to ~/.glean/ and reused
across sessions — you won't be prompted again until the refresh token
expires.
# Claude Code
/plugin marketplace update glean-plugins-internal
# Cowork: the plugin picker has a "Sync" / "Check for updates"
# button on the marketplace entry.
You can point the marketplace at a specific git branch, tag, or commit:
# Install from a specific branch (e.g. a PR branch)
/plugin marketplace add askscio/glean-plugins-internal@branch-name
/plugin install glean@glean-plugins-internal
# Or update an existing marketplace to a different branch
/plugin marketplace remove glean-plugins-internal
/plugin marketplace add askscio/glean-plugins-internal@branch-nameYou can also pin to a branch in settings.json:
{
"marketplaces": [
{
"name": "glean-plugins-internal",
"source": "https://github.com/askscio/glean-plugins-internal",
"sourceType": "git",
"branch": "mohit-baseline-marketplace-layout"
}
]
}For local development, point the marketplace at your local checkout instead:
/plugin marketplace add /path/to/glean-plugins-internalThen just git checkout whichever branch you want to test.
- Sign-in loop — the cached OAuth provider state may be stale. Delete
~/.glean/mcp-credentials.jsonand retry. GLEAN_MCP_SERVER_URL is required— the plugin's.mcp.jsonwasn't picked up by the host. Reinstall; if that fails, open an issue.
Prerequisites: Node 22+, npm.
npm install
npm test # vitest
npm run typecheck # tsc --noEmit
npm run build # esbuild → plugins/glean/dist/index.jsSource is at the repo root (src/, tests/, scripts/). Packaged
runtime lives under plugins/glean/. See the Layout section below.
- Bump
versioninplugins/glean/.claude-plugin/plugin.json. npm test && npm run typecheck— verify clean.- Commit, tag, and push:
git tag v<version> git push && git push --tags
- Draft a release on GitHub.
.claude-plugin/
marketplace.json Top-level marketplace manifest for Claude Code
/ Cowork. Points at ./plugins/glean as the
plugin source.
plugins/glean/
.claude-plugin/
plugin.json Plugin manifest — name, version, description
.mcp.json MCP server invocation read by Claude Code /
Cowork. Source of truth.
dist/index.js Built server bundle (every dep inlined; produced
by `npm run build`; checked in)
skills/glean_run/ Skill that tells the agent how to use the
tools. Uses the open SKILL.md standard.
start.sh Bash launcher that anchors PROJECT_DIR to the
host's spawn cwd, then execs node on the bundle
package.json Minimal "type": "module" manifest so Node
treats dist/index.js as ESM at runtime
src/ TypeScript sources for the MCP server
tests/ Vitest suite
scripts/ build.mjs — esbuild bundler
package.json Top-level dev config — deps, npm scripts
tsconfig.json TypeScript config for the dev tree
Apache 2.0. See LICENSE.