# Feature AI-7 - MCP Server Infrastructure and Metadata Endpoint

Project: Stream AI
Status: closed
URL: https://community.openproject.org/work_packages/AI-7

## Planning

| Attribute | Value |
| --- | --- |
| Date | 2025-10-08 – 2025-10-13 |
| Priority | Medium |
| Target versions | 17.2.0 |
| List |  |
| Roadmap |  |
| Relevance |  |

## OPEN POINTS / FEEDBACK

_No work packages_

## Features and Chunks

| ID | Subject | Type | Status | Assignee | Target versions | Spent time |
| --- | --- | --- | --- | --- | --- | --- |
| AI-25 | Set proper MCP server description | Implementation | rejected |  |  |  |

## Bugs and other work packages

_No work packages_

## Technical Details

| Attribute | Value |
| --- | --- |
| Module |  |
| Feature Flag |  |
| Requires doc change | No |
| Enterprise plan |  |

## Details

| Attribute | Value |
| --- | --- |
| Pull preview |  |
| Mockups |  |

## People

| Attribute | Value |
| --- | --- |
| Assignee |  |
| Accountable |  |
| Product manager |  |
| Developers | Jan Sandbrink |
| Designer |  |
| Ordered by |  |
| Signed off by |  |
| Interest by |  |

## Estimates and progress

| Attribute | Value |
| --- | --- |
| Work |  |
| Labor costs |  |

## Description

**As** an OpenProject developer  
**I want to** provide a compliant MCP HTTP endpoint inside OpenProject  
**so that** MCP clients can discover and communicate with OpenProject’s available tools, resources, and prompts through a single standard interface

**Acceptance criteria**

*   A new endpoint `/mcp` exists within OpenProject
    
*   The MCP server responds to:
    
    *   Server metadata includes:
        
        *   server name
            
        *   version
            
        *   title
            
        *   ~~description~~ _(not yet available in Ruby MCP SDK, can be added later)_
            
        *   supported endpoints and configuration.
            
    *   MCP server supports `tools/list`, `resources/list` and `prompts/list` requests
        
        *   minimal stubs return empty or demo data until respective features are implemented.
            
    
    <br>
    
*   `metadata` output follows the Model Context Protocol spec for HTTP transport.
    
*   Endpoint available in development and production modes behind feature flag `mcp_server` and enterprise feature `mcp_server`.
    
*   Health check logs confirm valid MCP responses.
    
    <br>
    

**Technical notes**

*   Implement using the [Ruby MCP SDK](https://github.com/modelcontextprotocol/ruby-sdk).
    
*   The metadata endpoint includes:
    
    *   server\_name, version, auth\_method: oauth2\_pkce,
        
    *   arrays for available tools, resources, prompts,
        
    *   optional admin\_customization: true flag.
        
        <br>
        

**Permissions and visibility considerations**

*   Visible only when `mcp_server` feature flag is active.
    
*   Requires authenticated OAuth access token (public apps with PKCE allowed).
    
*   Metadata hides any disabled tools/resources per admin configuration.
    

**Out of scope**

*   Implementing actual tool or resource logic (covered in later features).
    
*   WebSocket or streaming transport.
    
*   UI components for admin configuration (handled in separate features).
    
    <br>
