I built JurisMind because I am a lawyer, and I do not want a chatbot inventing case law for me. I also wanted something I can use case by case, not one giant dump of everything I have ever read.

The job is simple. I save a source together with why it matters for this case (any case; the demo is just an example). That library lives in my browser, not on a server. That matters because this is where I already work, next to Word and the rest of my case tools.

When I ask a question (or when ChatGPT asks it for me), JurisMind builds a "mapa de sustento": excerpt, my note, and the gaps, kept apart. If the library has nothing on that question, it says so. My sources stay organized per case.

The rule I actually work with: I decide what enters; the source decides what can be claimed.

The UI is in Spanish; I am a lawyer in Colombia, so I built it first for a lawyer who works in Spanish. This page is in English so judges (and you 😅) can read it.

Why WebMCP

I am not going to paste a whole expediente into a chat window. I am also not going to let an agent invent a back door into my file.

WebMCP is the controlled window: the site publishes two tools. ChatGPT can call those tools — review the library, save a holding with my note, build a map — without me uploading the case to someone else’s server. The page stays the source of truth. (A browser agent can still see what is on screen; WebMCP is not magic privacy. It is an honest tool access.)

What we can do together now

I open https://jurismind-five.vercel.app. ChatGPT looks at the origin and finds the real tools — capturar_recurso and buscar_y_armar. It does not invent an API.

Then, in ordinary language (the demo is caso Ramírez: high-cost medicine, EPS delay):

  • it reviews what is already in mi biblioteca
  • it finds an official Corte Constitucional judgment, opens it, and saves it with my note
  • it builds the map only from what is saved — and it flags when a card matches the note but has no excerpt yet
  • I ask something the library cannot support (caducidad de la reparación directa) and I get 0 fuentes. No invented sentencia. That is the feature. 🙂

Before this, either I clicked the UI myself or I hoped the model would not hallucinate the rest. Those were the options.

How it is wired

document.modelContext.registerTool on this origin only.

  • capturar_recurso — write. Needs url and nota. Optional title, excerpt, collection.
  • buscar_y_armar — read. Needs query. Opens the map in the page.

IndexedDB per origin. Production and localhost are not the same library. No case-file backend. Chrome production has a WebMCP origin trial. ChatGPT Desktop works with Sol or Terra (not Luna). Gemini Nano / Prompt API can classify if the device has it; there is a fallback that does not depend on it.

Repo: https://github.com/cristianbdev/jurismind (MIT). Video: https://youtu.be/2MnIFDTDRkE

Test it like a lawyer, and you'll see what I see

Open the live URL in ChatGPT Desktop. Optional: “Probar el caso Ramírez” loads three official Colombian sources you can delete. Then talk to ChatGPT the way you would talk to a junior: look at the file, go get a sentencia, save it with a note, arm the argument, then ask something that should come back empty.

Built With

Share this project:

Updates

Submission history