Skip to content

Comments

[wip] MCP Config#714

Open
dines-rl wants to merge 3 commits intomainfrom
dines/mcp-hub-sdk
Open

[wip] MCP Config#714
dines-rl wants to merge 3 commits intomainfrom
dines/mcp-hub-sdk

Conversation

@dines-rl
Copy link
Contributor

@dines-rl dines-rl commented Feb 6, 2026

User description

⚠️ PR Title Must Follow Conventional Commits

Format: feat[optional scope]: <description>

Examples: feat: add new SDK method · feat(storage): support file uploads · feat!: breaking API change

Description

Motivation

Changes

Testing

  • Unit tests added
  • Integration tests added
  • Smoke Tests added/updated
  • Tested locally

Breaking Changes

Checklist

  • PR title follows Conventional Commits format (feat: or feat(scope):)
  • Documentation updated (if needed)
  • Breaking changes documented (if applicable)

CodeAnt-AI Description

Manage MCP configs from the SDK and add end-to-end smoke tests

What Changed

  • Exposes a new McpConfig object in the SDK that can be created, retrieved (by ID), updated, deleted, and listed via runloop.mcpConfig.
  • Adds McpConfigOps to RunloopSDK and exports McpConfig so clients can programmatically manage MCP configurations and reference them from devboxes.
  • Adds comprehensive smoke tests that exercise MCP config lifecycle (create/read/update/list/delete), allowed_tools variants, retrieval by ID, cleanup helper, and optional MCP hub integration tests that verify devbox environment variables, authentication, and tool listing via the MCP protocol.

Impact

✅ Can create and manage MCP configs from the SDK
✅ Test coverage for MCP config lifecycle and MCP hub integration
✅ Devboxes can be configured and validated to connect to MCP hubs during smoke tests

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

@codeant-ai
Copy link
Contributor

codeant-ai bot commented Feb 6, 2026

CodeAnt AI is reviewing your PR.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai codeant-ai bot added the size:XL This PR changes 500-999 lines, ignoring generated files label Feb 6, 2026
@codeant-ai
Copy link
Contributor

codeant-ai bot commented Feb 6, 2026

CodeAnt AI finished reviewing your PR.

@github-actions
Copy link

github-actions bot commented Feb 6, 2026

⚠️ Object Smoke Tests & Coverage Report

Test Results

✅ All smoke tests passed

Coverage Results

Metric Coverage Required Status
Functions 98.08% 100%
Lines 86.78% - ℹ️
Branches 65.75% - ℹ️
Statements 85.51% - ℹ️

Coverage Requirement: 100% function coverage (all public methods must be called in smoke tests)

⚠️ Some object methods are not covered in smoke tests. Please add tests that call all public methods.

View detailed coverage report
File Functions Lines Branches
src/sdk.ts ❌ 96.42% 81.54% 70.83%
src/sdk/agent.ts ✅ 100% 100% 100%
src/sdk/blueprint.ts ✅ 100% 100% 80%
src/sdk/devbox.ts ✅ 100% 91.81% 96.96%
src/sdk/execution-result.ts ✅ 100% 92.68% 70.83%
src/sdk/execution.ts ✅ 100% 94.11% 83.33%
src/sdk/gateway-config.ts ✅ 100% 100% 100%
src/sdk/mcp-config.ts ✅ 100% 100% 100%
src/sdk/network-policy.ts ✅ 100% 100% 100%
src/sdk/scenario-run.ts ❌ 92.85% 75% 50%
src/sdk/scenario.ts ❌ 85.71% 91.66% 100%
src/sdk/scorer.ts ✅ 100% 100% 100%
src/sdk/snapshot.ts ✅ 100% 100% 100%
src/sdk/storage-object.ts ✅ 100% 80% 48.93%

📋 View workflow run

@codeant-ai
Copy link
Contributor

codeant-ai bot commented Feb 10, 2026

CodeAnt AI is running Incremental review


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai
Copy link
Contributor

codeant-ai bot commented Feb 10, 2026

Sequence Diagram

This PR adds an object-oriented McpConfig class and exposes McpConfigOps on RunloopSDK so clients can create, retrieve, update, list, and delete MCP configs via the SDK. The diagram shows the core lifecycle (create → read → update → delete) using the SDK which delegates to the underlying API resources.

sequenceDiagram
    participant User
    participant RunloopSDK
    participant McpConfigOps
    participant RunloopAPI

    User->>RunloopSDK: sdk.mcpConfig.create(params)
    RunloopSDK->>McpConfigOps: create(params)
    McpConfigOps->>RunloopAPI: POST /mcp-configs (create)
    RunloopAPI-->>McpConfigOps: MCP config id
    McpConfigOps-->>RunloopSDK: McpConfig instance

    User->>RunloopSDK: mcpConfig.getInfo()
    RunloopSDK->>RunloopAPI: GET /mcp-configs/:id (retrieve)
    RunloopAPI-->>RunloopSDK: McpConfig data

    User->>RunloopSDK: mcpConfig.update(params)
    RunloopSDK->>RunloopAPI: PATCH /mcp-configs/:id (update)
    RunloopAPI-->>RunloopSDK: updated McpConfig

    User->>RunloopSDK: mcpConfig.delete()
    RunloopSDK->>RunloopAPI: DELETE /mcp-configs/:id
    RunloopAPI-->>RunloopSDK: deletion confirmation
Loading

Generated by CodeAnt AI

@codeant-ai codeant-ai bot added size:XXL This PR changes 1000+ lines, ignoring generated files and removed size:XL This PR changes 500-999 lines, ignoring generated files labels Feb 10, 2026
@codeant-ai
Copy link
Contributor

codeant-ai bot commented Feb 10, 2026

CodeAnt AI Incremental review completed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL This PR changes 1000+ lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant