Skip to main content
Glama

Doorstop MCP

Quick and dirty implementation of a MCP Server for the Python Doorstop framework.

Port

Description

3001

The DoorstopMCP server

7867

A tweaked version of the doorstop-server that will update on page reload

6274, 6277, 3002

MCP Explorer when Docker was started with --profile inspector

Quickstart

WARNING


This tool is not yet ready for production use, as there is no user authentication. Please only use the MCP server in a trusted network.

With Docker

docker compose up --force-recreate

With VS Code

# Create the (local) repo where the requirements are tracked mkdir reqs cd reqs git init # Create all documents you need, e.g. doorstop create REQ ./reqs/req doorstop create LLR ./reqs/llr --parent REQ doorstop create TST ./reqs/tests --parent REQ

Then in the Run and Debug (Ctrl+Shift+D) pane start the Python Debugger: Module launch target.

Inspecting Results

The container will also start the doorstop-server in a seperate process so you can inspect your results visually. Originally the html exporter is only run once, therefore we had to fork the doorstop project and adjust it to fetch the document tree on every page reload.

Just navigate to http://{YOUR_HOSTNAME_IP}:7867 and refresh after every change.

Testing the API

You can explore the MCP by using the following web GUI from your command line:

npx -y @modelcontextprotocol/inspector

Or by starting a second container with MCP Explorer:

docker compose up --force-recreate --profile inspector

Options for MCP Explorer:

MCP Clients

Some example configurations to connect your prompting client to this MCP Server. This list is not exhaustive, feel free to open a pull request with the client that you used:

Open WebUI Configuration

Create a new External Tool in the admin interface, set the type to MCP Streamable HTTP, the URL to http://{YOUR_URL}:3001/mcp and make sure to disable authentication as this is not yet supported by this MCP Server and will lead to Open WebUI silently ignoring the tool. You will then need to adjust the permissions/visibility if you want to make this tool available to non admin users

Vibe CLI Configuration

To use this MCP server with Mistral Vibe CLI, add the following to your configuration:

[[mcp_servers]] name = "doorstop" transport = "streamable-http" url = "http://localhost:3001/mcp"

Antigravity MCP Configuration

{ "mcpServers": { "doorstop": { "serverUrl": "http://localhost:3001/mcp" } } }

Custom Attributes

Some attributes commonly used in requirements engineering such as Functional / Non-Functional requirements are an afterthought in Doorstop and have to be added manually by the user of the framework. Here is the list of attributes that where extended by this MCP server. They are automatically added to every document and when creating an item they can be populated.

Attribute

Examples

type

Functional, Non-Functional or Constraint

review-method

Review by Design, Test, Inspection, Analysis, Demonstration

An example of how they are added to every .doorstop.yml file:

# [...] attributes: reviewed: - type - verification-method

Undocumented attributes for html export

Also currently lacking from the documentation are the attributes that tweak some fields in the html exported version. See the following example from the reqs of the doorstop project:

settings: digits: 3 prefix: REQ sep: '' attributes: defaults: doc: name: 'Requirements' title: 'Requirements for _Doorstop_' ref: 'REQ-DS-2024' by: 'Wfg' major: '1' minor: 'A' copyright: 'Doorstop'

Implementation Status

  • read all documents

  • read all items

  • read the doorstop framework version

  • create: create a new document directory

  • delete: delete a document directory

  • add: create an item file in a document directory

  • remove: remove an item file from a document directory

  • edit: open an existing item or document for editing

  • reorder: organize the outline structure of a document

  • link: add a new link between two items

  • unlink: remove a link between two items

  • clear: absolve items of their suspect link status

  • review: absolve items of their unreviewed status

  • import: import an existing document or item

  • export: export a document as YAML or another format

  • publish: publish a document as text or another format

  • ability to switch the workspace, so the MCP can work on different projects

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jannled/DoorstopMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server