Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
MCP server for Openlane GRC: controls, evidence, policies, risks, workflows, and approvals.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
OPENLANE_API_TOKEN, OPENLANE_ORGANIZATION_ID, OPENLANE_BASE_URL, OPENLANE_ALLOW_WRITE, OPENLANE_ALLOW_DELETE标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"theopenlane": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"OPENLANE_API_TOKEN",
"-e",
"OPENLANE_ORGANIZATION_ID",
"-e",
"OPENLANE_BASE_URL",
"-e",
"OPENLANE_ALLOW_WRITE",
"-e",
"OPENLANE_ALLOW_DELETE",
"ghcr.io/gregdog/mcp-server-theopenlane:v0.8.0",
"serve"
],
"env": {
"OPENLANE_API_TOKEN": "your-value",
"OPENLANE_ORGANIZATION_ID": "your-value",
"OPENLANE_BASE_URL": "your-value",
"OPENLANE_ALLOW_WRITE": "your-value",
"OPENLANE_ALLOW_DELETE": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add theopenlane --env OPENLANE_API_TOKEN=your-value --env OPENLANE_ORGANIZATION_ID=your-value --env OPENLANE_BASE_URL=your-value --env OPENLANE_ALLOW_WRITE=your-value --env OPENLANE_ALLOW_DELETE=your-value -- docker run -i --rm -e OPENLANE_API_TOKEN -e OPENLANE_ORGANIZATION_ID -e OPENLANE_BASE_URL -e OPENLANE_ALLOW_WRITE -e OPENLANE_ALLOW_DELETE ghcr.io/gregdog/mcp-server-theopenlane:v0.8.0 serve运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"theopenlane": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"OPENLANE_API_TOKEN",
"-e",
"OPENLANE_ORGANIZATION_ID",
"-e",
"OPENLANE_BASE_URL",
"-e",
"OPENLANE_ALLOW_WRITE",
"-e",
"OPENLANE_ALLOW_DELETE",
"ghcr.io/gregdog/mcp-server-theopenlane:v0.8.0",
"serve"
],
"env": {
"OPENLANE_API_TOKEN": "your-value",
"OPENLANE_ORGANIZATION_ID": "your-value",
"OPENLANE_BASE_URL": "your-value",
"OPENLANE_ALLOW_WRITE": "your-value",
"OPENLANE_ALLOW_DELETE": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"theopenlane": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"OPENLANE_API_TOKEN",
"-e",
"OPENLANE_ORGANIZATION_ID",
"-e",
"OPENLANE_BASE_URL",
"-e",
"OPENLANE_ALLOW_WRITE",
"-e",
"OPENLANE_ALLOW_DELETE",
"ghcr.io/gregdog/mcp-server-theopenlane:v0.8.0",
"serve"
],
"env": {
"OPENLANE_API_TOKEN": "your-value",
"OPENLANE_ORGANIZATION_ID": "your-value",
"OPENLANE_BASE_URL": "your-value",
"OPENLANE_ALLOW_WRITE": "your-value",
"OPENLANE_ALLOW_DELETE": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
OPENLANE_ORGANIZATION_ID envOPENLANE_BASE_URL envOPENLANE_ALLOW_WRITE envOPENLANE_ALLOW_DELETE env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日
注册名称已通过 GitHub 账户 GregDog 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:OPENLANE_API_TOKEN
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.8.0)于44天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Docker。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Thth
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Call before you post: ships a draft to Threads/Bluesky/Mastodon only after a person approved it.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
A secure, open-source Model Context Protocol server for the Openlane GRC platform.
This project is not an official Openlane product and is not endorsed by theopenlane, Inc.
openlane-mcp lets MCP clients such as Cursor and Claude Desktop query Openlane over stdio (default) or Streamable HTTP. It talks to Openlane Cloud or a self-hosted instance through the official Openlane Go client.
MCP Client
→ Openlane MCP Server (stdio or HTTP) → Official Openlane Go Client → Openlane API
The server is read-only by default. Write and delete tools are opt-in and independent. Openlane authorization still applies to every request.
io.github.GregDog/mcp-server-theopenlane)Create an Openlane API token or PAT in console developer settings. Organization tokens start with tola_. Personal access tokens start with tolp_.
export OPENLANE_API_TOKEN="tola_..."
export OPENLANE_ORGANIZATION_ID="..."
openlane-mcp serve
Then connect an MCP client. See Client configuration.
go install github.com/GregDog/mcp-server-theopenlane/cmd/openlane-mcp@latest
Requires Go 1.27 or later.
Binary archives will be published on tagged GitHub Releases (linux/darwin amd64+arm64, windows amd64) with SHA256 checksums.
docker run --rm -i \
-e OPENLANE_API_TOKEN \ -e OPENLANE_ORGANIZATION_ID \ ghcr.io/gregdog/mcp-server-theopenlane serve
Images are published with GitHub Releases to ghcr.io/gregdog/mcp-server-theopenlane.
This repository's .cursor/mcp.json uses scripts/mcp-serve.sh, which loads .env and runs the local binary:
{
"mcpServers": { "openlane": { "command": "bash", "args": ["${workspaceFolder}/scripts/mcp-serve.sh"] } } }
Or install globally and pass env vars directly:
{
"mcpServers": { "openlane": { "command": "openlane-mcp", "args": ["serve"], "env": { "OPENLANE_API_TOKEN": "${env:OPENLANE_API_TOKEN}", "OPENLANE_ORGANIZATION_ID": "${env:OPENLANE_ORGANIZATION_ID}" } } } }
Start the server with bash scripts/mcp-http.sh (see HTTP transport), then use examples/cursor-http.mcp.json as a template.
Add to claude_desktop_config.json:
{
"mcpServers": { "openlane": { "command": "openlane-mcp", "args": ["serve"], "env": { "OPENLANE_API_TOKEN": "tola_your_token_here" } } } }
Prefer environment substitution or a local secrets store over committing tokens. Examples in this repository use fictional values only.
Read tools are always available. Write tools require OPENLANE_ALLOW_WRITE=true or --allow-write. Delete tools require OPENLANE_ALLOW_DELETE=true or --allow-delete.
A successful read still requires:
object:read scope (or equivalent PAT permissions)Writes and deletes additionally require server opt-in (OPENLANE_ALLOW_WRITE / OPENLANE_ALLOW_DELETE) and matching Openlane token permissions. Workflow definition writes, workflow assignment actions, native policy lifecycle actions, and workflow deletes also require confirm: true on the tool call.
Tokens are never logged. See docs/security.md.
| Tool | Description |
|---|---|
openlane_controls_list | List controls |
openlane_controls_search | Search controls by ref code, title, or description |
openlane_control_get | Get a control by ID (with relationship summaries) |
openlane_programs_list | List programs (optional name filter) |
openlane_program_get | Get a program by ID (with relationship summaries) |
openlane_evidence_list | List evidence metadata (optional program/control filters) |
openlane_evidence_get | Get evidence metadata by ID |
openlane_policies_list | List internal policies (optional status filter) |
openlane_policies_awaiting_approval | List policies awaiting approval (native NEEDS_APPROVAL + your pending workflow assignments) |
openlane_policy_get | Get a policy by ID |
openlane_risks_list | List risks (optional program/entity/control/status filters) |
openlane_risk_get | Get a risk by ID (with relationship summaries) |
openlane_findings_list | List findings (optional program/assessment/open/status/severity filters) |
openlane_finding_get | Get a finding by ID |
openlane_assessments_list | List assessments |
openlane_assessment_get | Get an assessment by ID |
openlane_control_implementations_list | List control implementations |
openlane_control_implementation_get | Get a control implementation by ID |
openlane_mapped_controls_list | List cross-framework control mappings (MappedControl) |
openlane_mapped_control_get | Get a control mapping by ID |
openlane_standards_list | List standards / frameworks |
openlane_standard_get | Get a standard by ID |
openlane_tasks_list | List tasks |
openlane_task_get | Get a task by ID |
openlane_entities_list | List entities (vendors; optional risk/tier/review/security filters) |
openlane_entity_get | Get an entity by ID (vendor/security/commercial fields) |
openlane_assets_list | List assets |
openlane_asset_get | Get an asset by ID |
openlane_platforms_list | List platforms (system boundaries; optional name, display id, status, environment, region, criticality filters) |
openlane_platform_get | Get a platform by ID (narrative, owner roles, scope links, diagram metadata) |
openlane_contacts_list | List contacts |
openlane_contact_get | Get a contact by ID |
openlane_reviews_list | List vendor Risk Reviews (optional entity filter) |
openlane_review_get | Get a vendor Risk Review by ID |
openlane_groups_list | List groups (optional name filter) |
openlane_group_get | Get a group by ID |
openlane_users_list | List users (optional name/email filters) |
openlane_user_get | Get a user by ID |
openlane_workflows_list | List workflow definitions (optional schema/kind/active filters) |
openlane_workflows_search | Search workflow definitions by name or description |
openlane_workflow_get | Get a workflow definition by ID (with plain-English summary) |
openlane_workflow_instances_list | List workflow instances (optional definition/state/object filters) |
openlane_workflow_instance_get | Get a workflow instance by ID (assignments, events, proposal preview) |
openlane_workflow_assignments_list | List my workflow approval assignments |
openlane_workflow_assignment_get | Get a workflow assignment by ID (targets, due date, object context) |
openlane_workflow_metadata_get | Get workflow-eligible fields, edges, and resolver keys per object type |
Write tools (require OPENLANE_ALLOW_WRITE=true or --allow-write):
| Tool | Description |
|---|---|
openlane_control_create / openlane_control_update | Create or update a control |
openlane_mapped_control_create / openlane_mapped_control_update | Create or update cross-framework control mappings (MappedControl) |
openlane_evidence_create / openlane_evidence_update | Create or update evidence; optional control_ids / add_control_ids / remove_control_ids (org-owned controls only — not system catalog copies); optional base64 file uploads |
openlane_controls_list / openlane_controls_search | Optional linkable_only returns org-owned controls suitable for evidence linking |
openlane_policy_create / openlane_policy_update | Create or update an internal policy |
openlane_policy_submit_for_approval / openlane_policy_approve / openlane_policy_publish / openlane_policy_return_to_draft | Native InternalPolicy status transitions (confirm required) |
openlane_risk_create / openlane_risk_update | Create or update a risk |
openlane_task_create / openlane_task_update | Create or update a task |
openlane_entity_create / openlane_entity_update | Create or update an entity (vendor); optional base64 logo upload or logo_remote_url |
openlane_platform_create / openlane_platform_update | Create or update a platform (system boundary); owner fields accept user id, email, name, or group id/name; optional scope link ids and base64 diagram uploads |
openlane_contact_create | Create a contact (optional entity_ids) |
openlane_vendor_risk_review_create / openlane_vendor_risk_review_update | Create or update a vendor Risk Review |
openlane_workflow_create / openlane_workflow_update | Create or update a WorkflowDefinition (confirm required) |
openlane_workflow_assignment_approve / openlane_workflow_assignment_reject | Approve or reject a WorkflowAssignment (confirm required) |
openlane_workflow_assignment_request_changes / openlane_workflow_assignment_reassign | Request changes or reassign an assignment (confirm required) |
Delete tools (require OPENLANE_ALLOW_DELETE=true or --allow-delete):
| Tool | Description |
|---|---|
openlane_control_delete | Delete a control by ID |
openlane_mapped_control_delete | Delete a control mapping by ID |
openlane_evidence_delete | Delete evidence by ID |
openlane_policy_delete | Delete a policy by ID |
openlane_risk_delete | Delete a risk by ID |
openlane_task_delete | Delete a task by ID |
openlane_workflow_delete | Delete a workflow definition by ID (confirm required) |
See docs/tools.md for full details. With all modes enabled there are 77 tools (44 read, 27 write, 6 delete).
Enriched get tools return bounded relationship summaries (count + items) so agents can answer program, vendor, control, and finding questions without chaining dozens of shallow calls.
List responses are paginated (items, next_cursor, has_more, total_count). Default page size is 20; maximum is 50.
There is no dedicated control search GraphQL operation in the current Openlane Go client. openlane_controls_search uses o
只显示了开头部分;其余内容请在仓库中阅读