MCP ExplorerExplorer

Mcp Openproject Smithery

@jessebautistaon 10 months ago
2 MIT
FreeCommunity
AI Systems
MCP Server for OpenProject, enabling CRUD tools for projects and tasks.

Overview

What is Mcp Openproject Smithery

mcp-openproject-smithery is an MCP server designed for OpenProject, enabling interaction with self-hosted OpenProject instances through a set of tools compatible with Smithery.

Use cases

Use cases include creating and managing projects and tasks within OpenProject, integrating with other tools via Smithery, and facilitating local development and testing of project management workflows.

How to use

To use mcp-openproject-smithery, deploy it using Docker or locally with Node.js. Ensure you have an accessible OpenProject instance and an API key. Utilize the provided CRUD tools for managing projects and tasks.

Key features

Key features include support for project and task CRUD operations, compatibility with Smithery’s HTTP transport, easy deployment with Docker, and local development support with MCP Inspector.

Where to use

mcp-openproject-smithery is suitable for project management environments that utilize OpenProject, particularly in organizations looking to enhance their project tracking and task management capabilities.

Content

smithery badge

MCP Server for OpenProject (Smithery Edition)

This project provides a Model Context Protocol (MCP) server for OpenProject, designed for deployment and use with Smithery. It exposes a set of tools for interacting with a self-hosted OpenProject instance, and is compatible with Smithery’s HTTP transport and tool listing requirements.

About this MCP Server

  • Built with TypeScript and Node.js using the @modelcontextprotocol/typescript-sdk.
  • Exposes OpenProject CRUD tools for projects and tasks (work packages).
  • Designed for easy deployment to Smithery, with Docker support and a minimal, production-ready structure.
  • Supports local development and testing with MCP Inspector and Smithery tools.

Implemented OpenProject Tools

  • Projects:
    • openproject-create-project: Creates a new project.
    • openproject-get-project: Retrieves a specific project by ID.
    • openproject-list-projects: Lists all projects (supports pagination).
    • openproject-update-project: Updates an existing project’s details.
    • openproject-delete-project: Deletes a project.
  • Tasks (Work Packages):
    • openproject-create-task: Creates a new task within a project.
    • openproject-get-task: Retrieves a specific task by ID.
    • openproject-list-tasks: Lists tasks, optionally filtered by project ID (supports pagination).
    • openproject-update-task: Updates an existing task (requires lockVersion).
    • openproject-delete-task: Deletes a task.

Prerequisites

  • Node.js (v18 or later recommended)
  • npm
  • An OpenProject instance accessible via URL
  • An OpenProject API Key
  • (Optional) Docker for containerized builds

HTTP Entrypoint and Local Development

This MCP server now uses Express and the official MCP Streamable HTTP transport. The server is accessible at http://localhost:8000/mcp after running npm run dev or npm start.

Entrypoint code (see src/index.ts):

import express from "express";
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";

const app = express();
app.use(express.json());

const mcpServer = setupMCPServer();
const transport = new StreamableHTTPServerTransport({ sessionIdGenerator: undefined });
mcpServer.connect(transport);

app.all("/mcp", (req, res) => {
  transport.handleRequest(req, res, req.body);
});

app.get("/", (_req, res) => res.send("MCP OpenProject server is running!"));

const PORT = process.env.PORT || 8000;
app.listen(PORT, () => {
  console.log(`MCP server running on port ${PORT}`);
});
  • The /mcp endpoint is the main MCP HTTP endpoint for Smithery and MCP clients.
  • The root / endpoint is a health check.

Running Locally

  1. Install dependencies:
    npm install
    
  2. Build the project:
    npm run build
    
  3. Start the server (dev mode):
    npm run dev
    # or for production
    npm start
    
  4. Access the MCP endpoint at http://localhost:8000/mcp

Docker Usage

Build and run as before:

docker build -t mcp-openproject-smithery .
docker run --rm -p 8000:8000 --env-file .env mcp-openproject-smithery

Smithery Deployment

This project is ready for Smithery. The /mcp endpoint is compatible with Smithery’s HTTP transport requirements.

See your live Smithery server here:
smithery badge

Local Testing with MCP Inspector

You can test your MCP server locally using the MCP Inspector:

npx @modelcontextprotocol/inspector npx mcp-remote@next http://localhost:8000/mcp

Open the Inspector URL (usually http://localhost:6274) in your browser to interact with your tools.

Project Structure

  • src/index.ts — Main MCP server logic
  • smithery.yaml — Smithery server configuration
  • Dockerfile — Production-ready Docker build
  • tsconfig.json — TypeScript configuration
  • package.json — Project dependencies and scripts

License

MIT


This project is maintained for use with Smithery and the Model Context Protocol. For more information, see:

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers