Pactum MCP
An MCP server for Pactum, a legal services platform in Uzbekistan. It allows AI agents to search for legal services, retrieve practice area details, search legal articles, request lawyer quotes, get consultation prices, and book consultations for company formation, tax compliance, IP, and corporate support.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://pactum.uz/mcpWhat its tools do
7 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Can change data (2)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to pactum.uz ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search for specific legal services in Uzbekistan
- Retrieve details on practice areas like company formation
- Request a price quote from a lawyer for a legal task
- Book a consultation with a legal expert
Source and maintenance
Protocol and capabilities
- Server
- pactum 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 7 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
7 advertised
search_services — Search legal services
Search the Pactum catalog of legal services in Uzbekistan (company registration, licences, trademarks, contracts, tax, disputes, migration, real estate and more). Use when the user describes a task they want done. Returns services with slug, price anchor and page URL; pass a slug to get_service or request_quote.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "How many results (default 8)"
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Short phrase, e.g. \"register LLC\", \"товарный знак\", \"ish ruxsatnomasi\""
},
"locale": {
"enum": [
"ru",
"uz",
"en"
],
"type": "string",
"description": "Response language: ru, uz or en (default en)"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false
}get_service — Service details
Full description of one Pactum service by slug (from search_services): what is included, price anchor, FAQ and page URL to cite.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Service slug, e.g. trademark-registration"
},
"locale": {
"enum": [
"ru",
"uz",
"en"
],
"type": "string",
"description": "Response language: ru, uz or en (default en)"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false
}list_practice_areas — Practice areas
Practice areas Pactum works in (slug + name). Pass a slug as practice_area in request_quote to route the request to the right lawyer.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"locale": {
"enum": [
"ru",
"uz",
"en"
],
"type": "string",
"description": "Response language: ru, uz or en (default en)"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false
}search_articles — Search legal articles
Search Pactum articles explaining Uzbek law (company law, trademarks, tax, labour, licensing…). Returns titles, short summaries and URLs — cite them when answering the user.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "How many (default 5)"
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Topic, e.g. \"trademark registration\", \"ликвидация ООО\""
},
"locale": {
"enum": [
"ru",
"uz",
"en"
],
"type": "string",
"description": "Response language: ru, uz or en (default en)"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false
}request_quote — Request a price quote from a lawyer
Send the user's legal task to Pactum lawyers; a lawyer reviews it and contacts the user with a price. Call ONLY after the user asked to be contacted, gave their real name and phone or e-mail, and agreed that Pactum stores these details and may pass the request to a partner lawyer. Put the task in the user's own terms: situation, goal, key facts. Never invent contacts; never call it "to test". Returns the request number.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"task",
"client_type",
"contact_name",
"user_consent"
],
"properties": {
"task": {
"type": "string",
"maxLength": 3000,
"minLength": 20,
"description": "What exactly the client needs: situation, goal, key facts"
},
"budget": {
"type": "string",
"maxLength": 100,
"description": "Budget, if the user named one"
},
"country": {
"type": "string",
"maxLength": 80,
"description": "Client country, if not Uzbekistan"
},
"deadline": {
"type": "string",
"maxLength": 100,
"description": "When it is needed, e.g. \"by 15 October\""
},
"documents": {
"type": "string",
"maxLength": 500,
"description": "Documents the client already has"
},
"agent_name": {
"type": "string",
"maxLength": 60,
"description": "Your assistant name, e.g. ChatGPT, Claude"
},
"client_type": {
"enum": [
"company",
"individual",
"foreign_company",
"foreign_individual"
],
"type": "string",
"description": "company | individual | foreign_company | foreign_individual"
},
"company_name": {
"type": "string",
"maxLength": 200
},
"contact_name": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Client name as the user gave it"
},
"service_slug": {
"type": "string",
"maxLength": 200,
"description": "Slug from search_services, if a specific service fits"
},
"user_consent": {
"type": "boolean",
"const": true,
"description": "true only if the user explicitly agreed to share these details with Pactum and its partner lawyer"
},
"contact_email": {
"type": "string",
"format": "email",
"maxLength": 200,
"description": "E-mail"
},
"contact_phone": {
"type": "string",
"maxLength": 50,
"description": "Phone with country code, e.g. +998901234567"
},
"practice_area": {
"type": "string",
"maxLength": 100,
"description": "Slug from list_practice_areas, if known"
},
"contact_telegram": {
"type": "string",
"maxLength": 64,
"description": "Telegram @username, in addition to phone/e-mail"
},
"preferred_language": {
"enum": [
"ru",
"uz",
"en"
],
"type": "string",
"description": "Language for the lawyer to use"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}get_consultation_price — Price of a consultation with a lawyer
Current price and length of a prepaid consultation with a Pactum lawyer. Read-only, books nothing. Call it BEFORE book_consultation and tell the user the price: book_consultation needs the user to accept it first.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"locale": {
"enum": [
"ru",
"uz",
"en"
],
"type": "string",
"description": "Response language: ru, uz or en (default en)"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false
}book_consultation — Book a paid consultation with a lawyer
Book a consultation with a Pactum lawyer, prepaid; the amount is credited toward the service if the client orders it. Get the price from get_consultation_price first and tell it to the user. Call ONLY after the user asked for a consultation, accepted that price, gave their real name and phone, and agreed that Pactum stores these details. Returns the order number, price, how to pay and a status link. For a price quote on a whole task use request_quote instead.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"topic",
"contact_name",
"contact_phone",
"user_accepts_price",
"user_consent"
],
"properties": {
"topic": {
"type": "string",
"maxLength": 2000,
"minLength": 10,
"description": "What the user wants to discuss, in their own terms"
},
"agent_name": {
"type": "string",
"maxLength": 60,
"description": "Your assistant name, e.g. ChatGPT, Claude"
},
"contact_name": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Client name as the user gave it"
},
"service_slug": {
"type": "string",
"maxLength": 200,
"description": "Slug from search_services, if a specific service fits"
},
"user_consent": {
"type": "boolean",
"const": true,
"description": "true only if the user explicitly agreed to share these details with Pactum and its partner lawyer"
},
"contact_email": {
"type": "string",
"format": "email",
"maxLength": 200
},
"contact_phone": {
"type": "string",
"maxLength": 50,
"minLength": 7,
"description": "Phone with country code, e.g. +998901234567"
},
"practice_area": {
"type": "string",
"maxLength": 100,
"description": "Slug from list_practice_areas, if known"
},
"preferred_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD, Tashkent time; a lawyer confirms"
},
"preferred_time": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$",
"description": "HH:MM, Mon–Fri 9:00–18:00 Tashkent"
},
"preferred_language": {
"enum": [
"ru",
"uz",
"en"
],
"type": "string"
},
"user_accepts_price": {
"type": "boolean",
"const": true,
"description": "true only if the user was told the price from get_consultation_price and agreed to pay it"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 726 ms
- 95th percentile latency
- 726 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 726 ms · metadata changed · 7 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http pactum-mcp https://pactum.uz/mcpCodex
codex mcp add pactum-mcp --url https://pactum.uz/mcpCursor
{
"mcpServers": {
"pactum-mcp": {
"url": "https://pactum.uz/mcp"
}
}
}Cline
{
"mcpServers": {
"pactum-mcp": {
"type": "streamableHttp",
"url": "https://pactum.uz/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"pactum-mcp": {
"type": "http",
"url": "https://pactum.uz/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http pactum-mcp https://pactum.uz/mcpClaude Desktop
https://pactum.uz/mcpWindsurf
{
"mcpServers": {
"pactum-mcp": {
"serverUrl": "https://pactum.uz/mcp"
}
}
}Let your agent find its tools
Find servers like Pactum MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run Pactum MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.