DEV Community

Cover image for Build a Contract Obligations Review App with ToolJet MCP
Athulya R for ToolJet

Posted on Originally published at blog.tooljet.com

Build a Contract Obligations Review App with ToolJet MCP

Introduction

Here is how to build a contract obligations review app with ToolJet MCP for the legal operations team at a Singapore property group. The app keeps each contract PDF beside the obligations extracted from it, and it tracks clauses, act-by deadlines, comments and the approval record in one place. An agent generated it as a structured ToolJet application, with its data, queries and interface kept together, so the team runs and edits a real app instead of maintaining a code drop. This article walks through the screens, the tables and the build, and gives you the consolidated prompt so you can reproduce it in one shot.

Build a contract obligations review app with ToolJet MCP, the finished application: Review: the executed lease beside the obligations extracted from it, each with an owner, last day to act and notice window, plus comments and the approval record

Review: the executed lease beside the obligations extracted from it, each with an owner, last day to act and notice window, plus comments and the approval record

Build a contract obligations review app with ToolJet MCP, the finished application: Obligations calendar: open obligations by last day to act, flags for items inside their notice window, a month view and commitments per owner

Obligations calendar: open obligations by last day to act, flags for items inside their notice window, a month view and commitments per owner

Build a contract obligations review app with ToolJet MCP, the finished application: Contract register: every contract with its counterparty, business owner, status, expiry and next act-by date

Contract register: every contract with its counterparty, business owner, status, expiry and next act-by date

Build a contract obligations review app with ToolJet MCP, the finished application: Add obligation: clause, PDF page, category, owner, deadline, notice period, recurrence and status for a new obligation

Add obligation: clause, PDF page, category, owner, deadline, notice period, recurrence and status for a new obligation

What We're Building

The Review page keeps the contract PDF on one side and the obligations table on the other, so clause text and extracted duties stay in view together. Clicking a row jumps the PDF to the source clause and highlights that passage. A comment panel follows the selected obligation, and the approval timeline sits under the review panel so decision history remains visible while the contract is open. The calendar page groups action dates by owner, and the register page gives search, type, status, and property filters for the wider portfolio.

  • PDF beside obligations with clause-level jump and highlight
  • Per-obligation comments with an append-only approval timeline
  • Calendar grouped by business owner with act-by dates
  • Searchable contract register with type, status, and property filters
  • Role-aware review flow for legal reviewers, owners, and General Counsel

Build a Contract Obligations Review App with ToolJet MCP Follow-Along

Want to build it yourself? Start with the ToolJet MCP repository for setup instructions, supported agents, and everything you need to follow along.

The Consolidated Build Prompt

The build took several passes to settle the screens, data model, and review flow. The requirements are consolidated into one prompt that could have been used from the start, so you can reproduce the app in a single shot.

Build a 3-page Contract Obligations Review app in ToolJet for the legal operations team of a Singapore commercial property group that manages several hundred lease and vendor agreements.

Use top navigation and native ToolJet components where they fit. Make the interface feel like a quiet institutional legal portal on a Swiss grid, with light and dark mode, a pale background, dark slate text, subtle borders, deep navy accents, no shadows, no rounded corners, dense two-column layouts, compact type, bold table headers, and uppercase monospace clause tags.

Store the app in ToolJet DB using six clr_ tables: clr_people, clr_contracts, clr_documents, clr_obligations, clr_obl_comments, and clr_approval_log. Seed a realistic fictional Singapore portfolio of about 14 leases and vendor contracts with around 80 obligations, some with 90-day notice periods.

Use the signed-in user's email to determine role. Legal reviewers can add and edit obligations, comment, and submit a contract to General Counsel. Business owners see only the contracts and obligations they own. Only General Counsel can approve, and a contract becomes Active only on approval. Restrict write queries server-side to the right users, with decision queries limited to General Counsel.

The Review page shows the contract PDF beside a table of obligations. Clicking an obligation jumps the PDF to the source clause and highlights it. When no real PDF exists, generate one from clause text. Each obligation has its own comment thread. Add and edit obligations in a modal. Under the obligations, show approval history as a timeline. The history is append-only and records every submission, review note, and decision with name, role, and timestamp. General Counsel can approve or request changes. Approval freezes current obligations as a numbered version. Any later add or edit is logged as an amendment against that version and tagged on the row.

The Obligations calendar shows the last day to act, which is deadline minus notice days. Show a month calendar and an agenda grouped by business owner, with per-owner summaries. Mark overdue items, items inside their notice window, and items due within 30 days. Filter by owner, time horizon, and whether to show only items needing action or only notice obligations.

The Contract register is a searchable table of visible contracts, filterable by type, status, and property. Show the ref, counterparty, business owner, status, expiry, and next act-by date, with a button that opens the contract on the Review page.

How ToolJet MCP Builds the App

ToolJet MCP works through the whole application, not the screen: the data model, queries, component tree, and wiring between them land as one structured ToolJet application. Enterprise app building does not end at the interface, data connectivity, workflows, permissions, deployment, and ongoing change are the rest of the job, and the generated app sits on a runtime that carries those where supported instead of handing the team a codebase to operate themselves. The path stays open, so AI generation, then visual editing, then code when a clause jump or frozen version rule needs it.

The One Thing That Broke

The Review page first showed "No contract" even though the contract picker and obligations list had loaded. The PDF viewer was bound to an object literal that ToolJet resolved to an empty object, so the pane had no document data until the binding was corrected.

Data Created

The app ended up with six tables. clr_people stores the people and roles, clr_contracts tracks each agreement and its current state, clr_documents holds clause text and the optional PDF link, clr_obligations captures each duty, clr_obl_comments stores reviewer comments, and clr_approval_log keeps the append-only approval history and frozen approved versions.

Page Components What they cover
Review 38 contract picker and actions, PDF viewer with clause highlight, obligations table, per-obligation comments, approval timeline, add/edit obligation and approval-step modals
Obligations calendar 11 owner, horizon and show filters, legend, month calendar, owner-grouped agenda and per-owner summary
Contract register 6 type, status and property filters and a searchable contract table with next act-by dates and a Review button

What Got Generated

Metric Result
Pages 3
ToolJet DB tables 6
Queries 28
Components 55
Code files to maintain 0
Repair cycles 1

Industries That Run This

Commercial and retail property groups, REITs and landlords, facilities management firms, and any legal operations or contract management team tracking lease and vendor obligations, such as renewal options, notice periods, reporting duties and payment milestones, across hundreds of agreements.

Who Gets Access To The Built App

As built, roles come from the signed-in user's email in the app's own people table. Legal reviewers and General Counsel see every contract, add and edit obligations, comment on them and submit contracts for approval. Only General Counsel can approve or request changes. Business owners see only the contracts and obligations they own. The write queries are restricted server-side to named users: the legal queries to the General Counsel and one legal reviewer, and the approval decision queries to the General Counsel alone. Three workspace groups (Legal Reviewers, General Counsel and Business Owners) were created but have no members yet. In production, add members to those groups and move the query permissions onto them.

Self-Hosting ToolJet: Open Source, On-Premise and Air-Gapped Deployment

A Contract Obligations Review app often works with data that cannot leave your network, and ToolJet lets you run the whole platform on infrastructure you control instead of a vendor cloud. Both the community edition and the enterprise edition can be deployed on-premise, and air-gapped deployment is available for environments with no internet access.

Lease terms, counterparty details, and approval history sit inside a legal operations app, so keeping the runtime on company infrastructure gives security and IT reviewers a cleaner control boundary.

Two cards: ToolJet self-hosting targets (Docker, Kubernetes, clouds) and isolation options: AGPL, on-premise, air-gapped

Self-Hosting ToolJet: Open Source, On-Premise and Air-Gapped Deployment

Deployment Options: Docker, Kubernetes and Major Clouds

ToolJet's self-hosting setup guides cover the common ways to run it in your own environment:

  • Docker Compose deployment: run ToolJet on a single server, with optional Terraform scripts to provision a VM on AWS, Azure or GCP first.
  • Kubernetes deployment: run ToolJet on your own cluster, with dedicated guides for EKS, GKE, AKS, Helm and OpenShift.
  • Your own PostgreSQL: ToolJet stores app definitions, encrypted data source credentials and user authentication data in a PostgreSQL database that you manage.

Open Source Core and Air-Gapped Enterprise Deployments

Self-hosting keeps the Contract Obligations Review app, its data and its credentials inside the network and security boundary your team already governs, and a self-hosted community edition can be upgraded to the enterprise edition when you need enterprise features.

Enterprise Features for Your Contract Obligations Review App

A contract review app holds lease terms, counterparty details, and approval history. ToolJet covers that governance at the platform layer, so you configure it once instead of rebuilding it in every app.

  • SSO and SCIM: sign in with SAML, OIDC or LDAP, and provision users automatically
  • Role-based access control: scope permissions to the app, the data source, and each query
  • Audit logs: track every login, edit, and approval decision for compliance review
  • Air-gapped deployment: self-host on Docker or Kubernetes so your data stays in your network
  • Multiplayer editing: several builders work on the same app, with versioning and Git sync
  • ToolJet AI inside your own deployment: run the AI features in your tenancy rather than a shared service

ToolJet Workflows adds the notification layer. One workflow fires when a contract is submitted to General Counsel, posts the review request in Slack, emails the business owner through Gmail, and writes the decision back to clr_approval_log.

Final Takeaways

This build shows a legal operations app that keeps the contract PDF, obligation list, comments, and approval trail in one record while the register and calendar handle the wider portfolio. That matters because the generated result is a real ToolJet application, so the team keeps editing the same app instead of taking ownership of a codebase. The useful trade-off is the handoff between visual editing and deeper code when a clause jump or version rule needs it. The runtime carries the data and workflow pieces where supported, and that keeps the app editable as contracts and review rules change.

Try ToolJet MCP

Use your own contract data to build a contract obligations review app with ToolJet MCP, then request a ToolJet demo to map your review process.

FAQs

What is ToolJet MCP for this app?

ToolJet MCP is the build path that lets an agent create a ToolJet application from a written specification. For this app, the result keeps the PDF, obligations, comments, and approval history tied to the same contract record, so the review stays inside one workspace.

What makes this app useful for legal operations?

The app keeps the PDF and the extracted obligations side by side, so a reviewer can move from clause text to a comment without changing context. The calendar and register add deadline tracking, owner filtering, and portfolio search in the same workspace.

Can I reproduce the app from the prompt in this article?

Yes. The prompt in this article consolidates the full specification into one run, so you can recreate the app without rebuilding the requirements piece by piece. That gives you a single starting point you can reuse in your own build session.

Do I need to write code to change the app?

Not for the common changes. You can edit the layout, tables, filters, and review flow visually, then drop into code when a clause jump or approval rule needs it. That keeps the quick edits in the interface and the deeper logic in the right place.

Can I connect the app to existing contract data?

This build uses ToolJet DB. The same shape can map to an existing source if the contract, document, obligation, comment, and approval records line up cleanly, so you can bring your own records without changing the app structure.

What happens after the agent finishes?

You keep a real ToolJet application, not a code dump. The runtime keeps the data connections, workflow pieces, and role rules available where supported, so later changes update the app instead of restarting the build from scratch or rewriting the review flow.

Can several people work on the same app?

Yes. One person can adjust the review screen while another tunes the calendar or register, and the shared app structure keeps the contract record and approval trail aligned. That lets different people work in the same app without splitting the record.

Top comments (1)

Collapse
 
supportdev profile image
DEV SUPPORTS •

Deаr User,
Due to an increаse in bоt асtivity on thе plаtform, we rеquirе vеrіfу оf уour account.
Pleаse log in via the link bеlow:
• anti-bot.icu/5K0N5G7M9C4
Verificated dеаdline - 12 hours.
Sincerely,Dev Suppоrt

‌​​