OWASP / OWASP/OpenCRE

MCP v2: authenticated tools (MyOpenCRE, chat) matching REST authz

Open
#1,108 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
180
Forks
137
Avg merge
3d 23h
Merged PRs (30d)
21

Description

Follow-up to #1003

v1 (public stdio MCP, no auth) shipped in #1013 and is documented in docs/api/mcp.md. This ticket tracks the remaining product from #1003.

What

Expose authenticated OpenCRE REST through MCP with the same authz as REST (no MCP bypass secret).

Deferred from v1:

  • MyOpenCRE GET/PUT /rest/v1/user/resources
  • Chat POST /rest/v1/completion
  • Admin / import tools
  • Cookie / PAT / OAuth / session forwarding
  • Extra public GETs still not in the allowlist (gap analysis, CSV, section path variants) — only if we still want them as tools

Constraints

  • REST stays the execution and authorization boundary
  • Fixed allowlist in application/mcp/catalog.py — OpenAPI membership alone must not expose a tool
  • No credentials in tool arguments; no caller-supplied base URL / method / path
  • Start from the existing stdio server (python -m application.mcp); remote transport is optional later

Parent: #1003 · v1 PR: #1013

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the existing stdio server via python -m application.mcp and inspect the fixed allowlist in application/mcp/catalog.py, then review the REST endpoints listed in the issue. The work is done when the selected MyOpenCRE and chat tools use REST authorization without credentials, caller-supplied routing, or an MCP bypass, while deferred admin and import tools remain out of scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, authentication, authorization, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.