list_projectsLABSCO SUMMARY
Capacity questions answered out of the planning tool itself.
Assignments sliced four ways, by person, project, role and team, is what lets it answer the questions people actually ask about who is free and who is overloaded. Actuals sit alongside them, so the plan can be checked against what was really logged.
What it is
A standalone server for the Runn API, covering resource-planning data such as people, projects, clients, assignments and logged actuals, with simple reporting helpers on top. It runs over stdio or streamable-http, locally or from a published container image.
What you get
- People, projects and clients listed (list_people, list_projects, list_clients)
- Assignments listed outright (list_assignments) or sliced by person, project, role or team (list_assignments_by_person, list_assignments_by_project, list_assignments_by_role, list_assignments_by_team)
- Logged actuals read back (list_actuals)
- Both transports: stdio for a desktop client, streamable HTTP — the default — for a hosted one
- A container image published to ghcr.io/gemini2026/runn-mcp-server, runnable with the API key passed in as an environment variable
Requirements
Python 3.10 or higher with requirements.txt installed, and a Runn API key in RUNN_API_KEY. The Docker path takes the same variable and exposes port 8000.
Setup effort
Follow the published steps — python3 -m venv .venv
USE CASES
Finding out who has capacity
List assignments by person or by team and read what is already committed, which is the answer to whether someone can take the new project without opening the planner.
Checking whether a project is staffed
Pull the assignments for the project and see who is on it and in what role, before the kickoff rather than during it.
Comparing the plan against reality
Read the logged actuals next to the assignments for the same period, which turns a suspicion that the project ran over into a figure you can quote.
Reporting on a client's work
List the clients, then their projects and the assignments underneath, so a client-level summary comes from the planning data rather than from someone's spreadsheet.
27 tools
Listed in project docs. Your client may show a different list.
list_peoplebillable_hourslist_clientslist_assignmentslist_assignments_by_personlist_assignments_by_projectlist_assignments_by_rolelist_assignments_by_teamlist_actualslist_actuals_by_date_rangelist_actuals_by_personlist_actuals_by_projectlist_actuals_by_rolelist_actuals_by_teamlist_roleslist_roles_by_personlist_skillslist_skills_by_personlist_teamslist_people_by_teamlist_people_by_skilllist_people_by_taglist_people_by_managerlist_rate_cardslist_rate_cards_by_projectrunn_requestBEFORE YOU INSTALL
What to know first
Tools you get
27 tools named in the project's documentation. Twenty-six only read, but runn_request calls any Runn API endpoint with GET, POST, PATCH, PUT or DELETE, so it can change or delete anything your key allows. No read-only flag is documented.
Requires
- Python 3.10+
- RUNN_API_KEY in your environment
INSTALLATION
Connect your client
Server setup
git clone https://github.com/gemini2026/runn-mcp-server
cd runn-mcp-server
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txtMCP Clients
Claude Desktop
{
"mcpServers": {
"runn": {
"command": "<YOUR_PATH_TO_PYTHON3>",
"args": [
"<YOUR_PATH_TO_MCP_RUNN_SERVER>",
"--transport",
"stdio"
],
"env": {
"RUNN_API_KEY": "<YOUR_API_KEY>"
}
}
}
}Other routes
Docker — HTTP on port 8000
docker run --rm -e RUNN_API_KEY=<YOUR_RUNN_API_KEY> -p 8000:8000 ghcr.io/gemini2026/runn-mcp-server:main