ModelEngine-Group / ModelEngine-Group/nexent
[Bug] Tenant-scoped OpenAPI refresh mutates global mounted MCP state
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 5.9k
- Forks
- 731
- Avg merge
- 19h 34m
- Merged PRs (30d)
- 172
Description
Nexent Version
Observed in the current public API-to-MCP refactor branch logic and relevant to the recent API-to-MCP work merged around v2.0.1.
Problem Description
The tenant-scoped refresh logic for imported OpenAPI services currently mutates a global in-process mounted MCP service set.
In local validation against the public refactor logic, refreshing tenant A mounted ['local', 'svc_a'], and then refreshing tenant B replaced that with ['local', 'svc_b'].
That means the refresh behavior is tenant-scoped in input, but global in effect.
Reproduction Steps
- Prepare two tenants with different imported OpenAPI services.
- Refresh tenant A and observe the mounted service set.
- Refresh tenant B in the same process.
- Observe that the mounted set is replaced globally instead of being isolated per tenant.
Additional Information
This looks like an isolation / lifecycle problem in the API-to-MCP mounting model.
Before proposing a patch, it would help to confirm the intended model:
- one global singleton service set for the whole process,
- per-tenant isolation inside the same process,
- or per-runtime / per-container isolation.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the tenant-scoped refresh logic in the API-to-MCP refactor and the global in-process mounted MCP service set. Reproduce the two-tenant sequence, establish whether isolation is per tenant, process, or runtime, and add coverage showing that refreshing tenant B does not replace tenant A's mounted services under the chosen model.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- openapi, python
- Domain
- backend-api-design
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100