Dealroom

io.github.sergiomaldov1.0.0Updated Oct 5, 2026

Draft and negotiate contracts clause by clause; a published formula proposes the compromise.

VerifiedStreamable HTTPWeb executableBusiness & CommerceProductivity & Workflow

Overview

AI-generated overview

Lets an assistant draft and negotiate two-party contracts clause by clause, with an algorithm proposing weighted compromises.

What it does
Dealroom is a two-party asynchronous contract negotiation platform exposed as a remote MCP endpoint. It supports a structured clause-by-clause workflow: create a deal with a skill template and jurisdiction, invite the other party, submit clause preferences and firmness levels, let the weighted compromise algorithm suggest terms, then agree and generate the contract for signing. Built-in templates include NDA, DPA and MSA, with bilingual English and Castilian Spanish contracts.
When to use it
Use it when an assistant should help draft or negotiate agreements between two parties, such as NDAs, DPAs or MSAs, and when a structured, auditable negotiation flow with suggested compromises is preferable to free-form drafting.
Requirements
A remote MCP endpoint at dealroom.todo.law over streamable HTTP. Authentication uses an Authorization header containing a Bearer token followed by a Dealroom API key. The hosted service charges per contract via prepaid credits; self-hosting the AGPL kit instead needs Node.js 20+, PostgreSQL, a Resend account and environment variables such as DATABASE_URL, NEXTAUTH_SECRET and RESEND_API_KEY.
Before you install
The Authorization header carries a Dealroom API key, so treat it as a secret. The hosted service charges per contract, paid once when a contract is first downloaded or when its signature starts, using prepaid credits sold in packs of ten, so an assistant could incur spending. Negotiation and signing change contract data and may produce legally binding documents; review terms before signing.

Installation

In SourceWeft

  1. Open Dealroom in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "dealroom": {
      "type": "http",
      "url": "https://dealroom.todo.law/api/v1/agent/mcp"
    }
  }
}

README

Dealroom

[License: AGPL v3]

Two-party async contract negotiation platform with weighted compromise algorithm.

Features

  • Contract Negotiation — Structured clause-by-clause negotiation workflow
  • Weighted Compromise — Algorithm suggests fair compromises based on party firmness and option bias
  • Contract Skills — Built-in templates (NDA, DPA, MSA, etc.) plus premium skills for your own instance
  • Bilingual Contracts — English and Castilian Spanish; the contract language is chosen when the deal is created and both parties negotiate in it
  • Two-Level Admin — Platform admins manage marketplace; supervisors monitor deals
  • Self-Hostable — AGPL-licensed sovereign kit for running on your own hardware (see below)

Hosted and the kit

  • Hosted (dealroom.todo.law) charges per contract. Drafting and negotiating are free. Each contract is paid once, when it is first downloaded or when its signature starts; every skill, premium ones included, is covered by that price. Agents pay per contract with prepaid credits sold in packs of ten (see docs/agent-api.md, "Paying per contract"). There is no monthly plan.
  • The kit (self-hosted) has no caps. Premium skills are sold only for the kit: 60 a year each in the kit (in your currency) on the todo.law storefront, installed and activated offline with a licence file.

The free-pilot limits (edit window, record ceilings) apply only to the hosted build (Vercel production, VERCEL_ENV=production, or AUTH_COOKIE_DOMAIN=.todo.law) while hosted billing is off; once billing is on they no longer apply. The rules live in src/lib/pilot.ts and src/config/features.ts.

Note: the earlier dual-brand system (todo.law + northend.law) was retired in May 2026; the codebase now ships a single brand (src/config/brand.ts documents the rationale and the restore path).

Tech Stack

  • Framework: Next.js 16 (App Router)
  • Language: TypeScript
  • API: tRPC
  • Database: PostgreSQL + Prisma
  • Auth: NextAuth (magic link, invite code, Google OAuth)

Getting Started

Prerequisites

  • Node.js 20+
  • PostgreSQL database
  • Resend account (for magic link emails)

Installation

bash
# Install dependenciesnpm install
# Set up environment variablescp .env.example .env
# Push database schemanpx prisma generate && npx prisma db push
# Seed initial datanpx prisma db seed
# Start development servernpm run dev

Open http://localhost:3000 to access the app.

Self-Hosting (Sovereign Kit)

Law firms can run Dealroom entirely on their own hardware with the Docker-based sovereign kit — app + PostgreSQL + migrator (+ optional Caddy TLS), published on port 8486, health-gated via /api/health:

bash
cd deploy/sovereigncp .env.example .env   # fill in secretsdocker compose up -d

See deploy/sovereign/README.md for the full runbook (backups, restore, cron wiring, hardening checklist). docs/deployment.md covers the hosted/Vercel path.

Environment Variables

DATABASE_URL=postgresql://...NEXTAUTH_SECRET=...NEXTAUTH_URL=http://localhost:3000RESEND_API_KEY=...[email protected]GOOGLE_CLIENT_ID=...GOOGLE_CLIENT_SECRET=...SKILLS_DIR=/path/to/skills          # Optional: premium skills directorySTRIPE_SECRET_KEY=...               # Optional: in-app billing (ignored on hosted dealroom.todo.law)

Administration

Create Platform Admin

bash
npm run admin:create -- [email protected] --name="Admin Name"

Access the platform admin portal at /admin.

Create Supervisor

bash
npm run supervisor:create -- [email protected] --name="Jane Smith"

Or create via the admin portal at /admin/supervisors.

Supervisors access their portal at /supervise and can only view deals assigned to them.

Documentation

DocumentDescription
deployment.mdHosted (Vercel) and self-hosted postures, environment variables
administration.mdTwo-level admin system, deal lifecycle, signing
lawyer-involvement.mdThree stages of lawyer involvement (EN)
intervencion-abogado.mdTres fases de intervención de abogado/a (ES)
agent-api.mdAgent Negotiation REST API reference
skills-and-licensing.mdSkill packages, licensing, activation, i18n

Project governance: SECURITY.md · CONTRIBUTING.md · NOTICES.md · CHANGELOG.md

Project Structure

src/├── app/                    # Next.js App Router pages│   ├── (admin)/           # Platform admin portal│   ├── (supervisor)/      # Supervisor portal│   ├── (dashboard)/       # User dashboard│   └── api/               # API routes├── components/            # React components├── config/│   ├── brand.ts           # Brand router│   ├── brands/            # Brand config (todo.ts; single brand since May 2026)│   └── features.ts        # Feature flags├── lib/                   # Shared utilities└── server/    ├── routers/           # tRPC routers    └── services/          # Business logicprisma/├── schema.prisma          # Database schema└── seed.ts               # Seed dataskills/                    # Built-in contract templatesdocs/                      # Documentation

Key Concepts

Deal Flow

  1. Create — Initiator creates deal, selects skill and jurisdiction
  2. Invite — Respondent receives invitation link
  3. Submit — Both parties submit clause preferences and firmness levels
  4. Negotiate — Algorithm suggests compromises; parties can also propose changes to open fields (negotiable parameters)
  5. Agree — Parties accept final terms
  6. Sign — Contract generated for signing

Compromise Algorithm

stake = ((5-flexibility)/5 × 0.6) + (|bias| × 0.4)

Each party sets a firmness level (1–5) per clause; the UI shows firmness while the database stores flexibility (6 − firmness). The party with higher stake wins the clause; equal stakes trigger a balanced compromise. A global fairness pass rebalances if one party wins disproportionately.

Administration Levels

RolePortalAccess
Platform Admin/adminManage skill catalog, customers, supervisors
Supervisor/superviseMonitor assigned deals only
User/dealsOwn negotiations only

License

Copyright (c) 2025-2026 Rindogatan LLC

This project is licensed under the GNU Affero General Public License v3.0.

Under AGPL §13, if you run a modified Dealroom as a network service you must offer its Corresponding Source to your users. The /licenses page carries that offer (the footers no longer link to it since 2026-10-01); point it at your fork with NEXT_PUBLIC_SOURCE_URL at build time, and add a visible link if your deployment needs one. Third-party attribution lives in NOTICES.md.

Source: README.md at commit 8a63880

Tools

0
Tool metadata has not been indexed yet.

Version history

1
  1. v1.0.0LatestOct 5, 2026