LegalForge MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@LegalForge MCP ServerCreate a privacy policy for Acme Inc in California using Stripe and Google Analytics"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
LegalForge MCP Server
Model Context Protocol (MCP) server for generating professional legal documents using AI.
Features
Privacy Policy - GDPR/CCPA compliant privacy policies
Terms of Service - Comprehensive terms for your website/app
Cookie Policy - Detailed cookie policies with consent info
Installation
npm install
npm run buildConfiguration
Set your Anthropic API key:
export ANTHROPIC_API_KEY=sk-ant-...Usage
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"legalforge": {
"command": "node",
"args": ["/path/to/legalforge-mcp/dist/index.js"],
"env": {
"ANTHROPIC_API_KEY": "sk-ant-..."
}
}
}
}Programmatic
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"generate_legal_document","arguments":{"documentType":"privacy","parties":[{"name":"Acme Inc","role":"company","email":"legal@acme.com"}],"terms":{"websiteUrl":"https://acme.com","siteName":"Acme","services":"Google Analytics, Stripe, Intercom"},"jurisdiction":"California, USA"}}}' | node dist/index.jsTool: generate_legal_document
Inputs
Parameter | Type | Required | Description |
|
| ✓ | Type of legal document |
|
| ✓ | Parties involved (company, users) |
|
| ✓ | Document configuration |
|
| ✓ | Legal jurisdiction |
Party Object
Field | Type | Required | Description |
|
| ✓ | Party name |
|
| ✓ | Role |
|
| - | Physical address |
|
| - | Contact email |
Terms Object
Key | Description |
| Website URL |
| Display name for the site |
| Comma-separated list of services/technologies |
Output
Returns HTML document content (starting from <h2> tags).
Example
const result = await mcpClient.callTool("generate_legal_document", {
documentType: "privacy",
parties: [
{
name: "TechStartup Inc",
role: "company",
email: "privacy@techstartup.com"
}
],
terms: {
websiteUrl: "https://techstartup.com",
siteName: "TechStartup",
services: "Google Analytics, Stripe, AWS, Intercom"
},
jurisdiction: "European Union"
});
console.log(result.content[0].text); // HTML privacy policyDevelopment
npm run dev # Run with tsx (hot reload)
npm run build # Compile TypeScript
npm start # Run compiled versionTemplate Usage
This MCP server serves as a template for building other MCP servers. Key patterns:
Tool registration with Zod schemas for validation
Prompt engineering with structured templates
Error handling with proper MCP error responses
Clean TypeScript setup with ESM modules
License
MIT
Available Tools
1 toolgenerate_legal_documentC
Generate professional legal documents (Privacy Policy, Terms of Service, Cookie Policy) using AI
| Name | Required | Description | Default |
|---|---|---|---|
| documentType | Yes | Type of legal document to generate | |
| parties | Yes | Parties involved in the document | |
| terms | Yes | Key-value pairs for document terms. Supported keys: websiteUrl, siteName, services (comma-separated list of technologies/services used) | |
| jurisdiction | Yes | Legal jurisdiction (e.g., 'United States', 'European Union', 'California, USA') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions AI generation but lacks critical details: whether documents are legally binding, if review by a lawyer is recommended, potential rate limits, or what the output format looks like. For a legal document generation tool, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that clearly states the tool's purpose with relevant examples. It's appropriately sized and front-loaded with zero wasted words, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of legal document generation, no annotations, and no output schema, the description is insufficient. It doesn't address the nature of the output (e.g., plain text, formatted document), legal disclaimers, or important behavioral constraints. The description leaves too many unanswered questions for a tool of this nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('generate') and resource ('professional legal documents') with specific examples (Privacy Policy, Terms of Service, Cookie Policy). It distinguishes the tool's function well, though without sibling tools, differentiation isn't applicable. The purpose is specific and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, prerequisites, or constraints. It simply states what the tool does without context for application. This lack of usage context leaves the agent without direction on appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.0.0- First observed
generate_legal_document
TDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool 'generate_legal_document' has a clear and distinct purpose.
Since there is only one tool, naming consistency is inherently perfect. The tool name follows a clear verb_noun pattern (generate_legal_document).
A single tool is too few for a server named 'LegalForge MCP Server', which suggests a broader legal domain. This feels thin and incomplete for generating legal documents, as it lacks supporting tools like editing, reviewing, or managing templates.
The tool surface is severely incomplete for legal document generation. While 'generate_legal_document' covers creation, there are obvious gaps such as updating, deleting, listing, or customizing documents, which are essential for a full workflow.
Related MCP Connectors
One-step legal compliance for vibe-coded apps: privacy, terms, cookie banner and EU AI Act check.
Compliant legal documents from your AI assistant: 1,100+ templates, 15 countries, free preview.
Generate attorney-drafted NDAs, MSAs, DPAs, and more as PDF, ODT, or Markdown. No account required.
Generate on-brand proposals, reports, and contracts instantly. Auto-extracts brand from any URL.