ერთი მისამართი, რომლითაც Claude, ChatGPT და თქვენი საკუთარი აგენტები პირდაპირ მიმართავენ საქართველოს კანონმდებლობას, სასამართლო პრაქტიკასა და legali.ge-ის AI კოპილოტს — პასუხებით, რომლებიც ზუსტ მუხლებს უთითებს.
დაკავშირების შემდეგ ასისტენტი თავად წყვეტს, როდის მოძებნოს რამე legali.ge-ზე. თქვენ უბრალოდ საკუთარი სიტყვებით კითხულობთ.
🎯
შესაბამისი დოკუმენტების შერჩევა
აღწერეთ სიტუაცია ნებისმიერ ენაზე — find_documents დააბრუნებს შესაბამის კანონებს, კონკრეტულ მუხლებს და სასამართლო პრაქტიკას, აზრის და არა სიტყვების მიხედვით დალაგებულს.
⚖️
სასამართლო პრაქტიკა
საქართველოს უზენაესი და საკონსტიტუციო სასამართლოების გადაწყვეტილებები, ადამიანის უფლებათა ევროპული სასამართლოს პრაქტიკა და ვენეციის კომისიის დასკვნები — ძიება შინაარსით.
📜
კანონებისა და მუხლების კითხვა
matsne.gov.ge-ის ნებისმიერი აქტის რეკვიზიტები, რედაქციების ისტორია, სარჩევი და კონსოლიდირებული ტექსტი, ან ერთი მუხლი პირდაპირი ბმულით.
💬
პასუხები წყაროების მითითებით
legali.ge-ის კოპილოტი პოულობს ნორმებსა და პრაქტიკას და პასუხობს წყაროების სიით — იგივე სისტემა, რაც საიტზე.
📝
დოკუმენტების შედგენა
20 ტიპის დოკუმენტი — სარჩელი, საჩივარი, ხელშეკრულება, NDA, მინდობილობა, პრეტენზია — მარტივი აღწერიდან, მარეგულირებელი ნორმების მითითებით.
📂
თქვენი დოკუმენტები და პროექტები
ატვირთეთ ხელშეკრულება ან სასამართლოს წერილი მონაცემების ამოსაღებად, დააფუძნეთ მასზე პასუხი და შეასწორეთ დოკუმენტები legali.ge-ის რედაქტორში ვერსიებით.
სცადეთ ეს მოთხოვნები
დაკავშირების შემდეგ ჩასვით Claude-ში ან ChatGPT-ში. legali.ge-ის ხსენება ასისტენტს სწორი ინსტრუმენტების არჩევაში ეხმარება.
legali.ge-ის გამოყენებით მოძებნე საქართველოს სამოქალაქო კოდექსის მუხლები და უზენაესი სასამართლოს პრაქტიკა ქირის უზრუნველყოფის თანხის (დეპოზიტის) დაბრუნებაზე, როცა გამქირავებელი უარს ამბობს. მოიყვანე მუხლები და მიუთითე ბმულები.
სამი წლის მუშაობის შემდეგ სამსახურიდან წერილობითი გაფრთხილების გარეშე გამათავისუფლეს. რას ამბობს საქართველოს შრომის კოდექსი კომპენსაციასა და სასამართლოსთვის მიმართვის ვადაზე? მიუთითე მუხლები legali.ge-ის მიხედვით.
წაიკითხე საქართველოს სამოქალაქო კოდექსის 128-ე მუხლი (დოკუმენტი 31702) legali.ge-ზე და მარტივად ამიხსენი, რა ხანდაზმულობის ვადები ვრცელდება დაუბრუნებელი სესხის მოთხოვნაზე.
შემიდგინე პრეტენზია მაღაზიის მიმართ, რომელმაც წუნდებული სარეცხი მანქანა მომყიდა და მის შეცვლაზე უარს ამბობს — მომხმარებელთა უფლებების დაცვის შესახებ საქართველოს კანონის საფუძველზე. გამოიყენე legali.ge და სახელებისა და თარიღებისთვის დატოვე ცარიელი ადგილები.
სწრაფი დაწყება
ერთი და იგივე მისამართი ყველა კლიენტში მუშაობს. წვდომას ერთხელ დაადასტურებთ legali.ge-ზე — პაროლი აპლიკაციას არ გადაეცემა — და კავშირი აქტიური რჩება, სანამ არ გათიშავთ.
საჭიროა legali.ge-ის ანგარიში (უფასოა, რეგისტრაცია). უფასო ანგარიშს აქვს MCP ერთეულების თვიური ლიმიტი და 10 საცდელი AI მოთხოვნა.
claude.ai და Claude Desktop — Pro, Max, Team და Enterprise ტარიფები
გახსენით Settings → Connectors.
დააჭირეთ „Add custom connector“.
დაარქვით „legali.ge“ და ჩასვით MCP სერვერის მისამართი.
დააჭირეთ „Connect“ — გაიხსნება legali.ge-ის გვერდი: შეამოწმეთ აპლიკაციის სახელი და დააჭირეთ „დაშვება“.
სერვერის მისამართი
https://mcp.legali.ge/mcp
Team და Enterprise ტარიფებზე კონექტორის დამატება შეიძლება მხოლოდ ორგანიზაციის მფლობელს შეეძლოს. მენიუს სახელები შეიძლება განსხვავდებოდეს ტარიფისა და ვერსიის მიხედვით.
ChatGPT — ტარიფები, სადაც ხელმისაწვდომია საკუთარი კონექტორები (developer mode)
Cursor-ში: Settings → MCP → Add new MCP server (ან ფაილი ~/.cursor/mcp.json). OAuth-ის მხარდაჭერის მქონე კლიენტებში საკმარისია მხოლოდ url, headers-ის გარეშე.
lgk_… შეცვალეთ პირადი API გასაღებით — შექმენით კაბინეტში, AI კავშირები.
სერვერს ნებისმიერი HTTP კლიენტი მიმართავს: გაგზავნეთ POST-ით თითო JSON-RPC შეტყობინება პირადი API გასაღებით. პასუხი ერთი JSON ობიექტია (SSE ნაკადის გარეშე).
1. ინიციალიზაცია (ამ stateless სერვერისთვის აუცილებელი არ არის, მაგრამ სტანდარტული MCP კლიენტები აგზავნიან):
შედეგი მონაცემებს ორჯერ შეიცავს: JSON ტექსტად content[0].text-ში და ობიექტებისთვის — structuredContent-ში.
lgk_… შეცვალეთ პირადი API გასაღებით — შექმენით კაბინეტში, AI კავშირები.
ავტორიზაცია
ავტორიზაციის ორი გზაა: OAuth იმ აპლიკაციებისთვის, რომლებიც მას უჭერენ მხარს (Claude, ChatGPT, Claude Code და თანამედროვე კლიენტების უმეტესობა), და პირადი API გასაღებები ყველა დანარჩენისთვის.
OAuth — ერთხელ დაკავშირება
აპლიკაციაში ამატებთ სერვერის მისამართს.
აპლიკაცია ბრაუზერში ხსნის legali.ge-ს. თუ შესული ხართ, ხედავთ, რომელი აპლიკაცია ითხოვს წვდომას და რა მისამართზე დაბრუნდება.
აჭერთ „დაშვებას“. აპლიკაცია იღებს თქვენს ანგარიშზე მიბმულ ტოკენებს — არასოდეს თქვენს პაროლს.
აპლიკაცია ტოკენებს ავტომატურად აახლებს. სანამ მას 90 დღეში ერთხელ მაინც იყენებთ, კავშირი აქტიური რჩება — კაბინეტში გათიშვამდე.
პირადი API გასაღებები
API გასაღები lgk_… იმ კლიენტებისთვისაა, რომლებსაც მხოლოდ სათაურის გაგზავნა შეუძლიათ — სკრიპტები, სერვერები, CI, Cursor, Claude Code ბრაუზერის გარეშე. გააგზავნეთ ასე: Authorization: Bearer lgk_…. გასაღები თქვენი სახელით მოქმედებს და თქვენი ტარიფის ლიმიტს ხარჯავს.
შექმენით ცალკე გასაღები თითო მოწყობილობისა თუ ინტეგრაციისთვის, ცნობადი სახელით; გააუქმეთ, როგორც კი აღარ დაგჭირდებათ.
გასაღები მხოლოდ ერთხელ ჩანს. legali.ge ინახავს მხოლოდ მის SHA-256 ჰეშს, ამიტომ დაკარგული გასაღები ვერ აღდგება — გააუქმეთ და შექმენით ახალი.
შეინახეთ გასაღები გარემოს ცვლადებში ან საიდუმლოების მენეჯერში — არასოდეს რეპოზიტორიაში ან ბრაუზერის კოდში.
Issuer: https://mcp.legali.ge. Discovery: /.well-known/oauth-protected-resource (RFC 9728) და /.well-known/oauth-authorization-server (RFC 8414; ასევე /.well-known/openid-configuration).
კლიენტის დინამიკური რეგისტრაცია (RFC 7591): POST /oauth/register. Redirect URI: https, http loopback (ნებისმიერი პორტი, RFC 8252) ან private-use სქემა.
Authorization code + PKCE — მხოლოდ S256; კოდი ერთჯერადია და 10 წუთში იწურება. Endpoint-ები: /oauth/authorize, /oauth/token, /oauth/revoke. Scope: mcp.
Access token lga_… — 1 საათი. Refresh token lgr_… — 90 დღე, ყოველ გამოყენებაზე იცვლება (rotation) და ვადას ახანგრძლივებს, ამიტომ რეგულარულად გამოყენებულ აპლიკაციას ხელახლა დაკავშირება არ სჭირდება. ახლახან გამოყენებული refresh token 120 წამის განმავლობაში კვლავ მიიღება — ქსელის განმეორებითი მოთხოვნებისთვის.
ტოკენის გარეშე ან ვადაგასული ტოკენით მოთხოვნა იღებს 401-ს და WWW-Authenticate: Bearer resource_metadata="…" სათაურს, საიდანაც კლიენტი იგებს, სად დაიწყოს ავტორიზაცია.
კაბინეტში კავშირის გათიშვა მის access და refresh ტოკენებს მაშინვე აუქმებს.
ინსტრუმენტების ცნობარი
გენერირებულია სერვერის საკუთარი აღწერებიდან (gelaw-mcp 0.2.0). აღწერები და პარამეტრების სქემები ინგლისურადაა — ზუსტად ისე, როგორც სერვერი AI-ს უგზავნის; მოკლე რეზიუმე ჩვენია.
ჰოსტინგის სერვერზე ყოველ გამოძახებას კავშირი სჭირდება (OAuth ან API გასაღები). ნიშანი ანგარიში აღნიშნავს ინსტრუმენტებს, რომლებიც თქვენს პირად მონაცემებთან ან ტარიფიცირებულ ბაზებთან მუშაობს; დანარჩენი საჯარო მონაცემებია.
არჩევს შეკითხვისთვის შესაბამის კანონებს, მუხლებსა და სასამართლო პრაქტიკას — პასუხის დაწერის გარეშე.
Select the documents relevant to a situation or question — WITHOUT generating an answer. Understands the query (domains, Georgian legal terms), searches laws by meaning (vector indexes + LLM rerank), court practice (Supreme/Constitutional Court, ECtHR, Venice Commission) and the curated legal-concept map, and returns ranked laws with the matched article, practice items and anchor articles. Use it to build your own research set, then read texts with get_law / get_article. Prefer it over search_laws for natural-language queries in any language. Costs 10 MCP units.
პარამეტრები: find_documents
სახელი
ტიპი
სავალდ.
ნაგულისხმევი
აღწერა
query
string
კი
—
Situation or question in any language (max 2000 chars).
limit
integer
—
10
Max laws to return. min 1 · max 30
lang
string
—
"ru"
Language for the query-understanding summary. მნიშვნელობები: karuen
ეძებს უზენაესი და საკონსტიტუციო სასამართლოების, ECHR-ისა და ვენეციის კომისიის პრაქტიკას შინაარსით.
Search court practice by meaning: Georgian Supreme Court decisions, Constitutional Court judgments, ECtHR case law and Venice Commission opinions. Returns ranked items with an excerpt and the source link (ECtHR/Venice: short excerpt + official link only). Costs 2 MCP units.
პარამეტრები: search_court_practice
სახელი
ტიპი
სავალდ.
ნაგულისხმევი
აღწერა
query
string
კი
—
Legal issue in any language.
sources
array<string>
—
—
Subset of sources; default all. მნიშვნელობები: supremeconstcourtechrvenice
კანონის კითხვა: რეკვიზიტები, რედაქციები, სარჩევი ან კონსოლიდირებული ტექსტი გვერდ-გვერდ.
Read a law / legal act by its matsne document id: metadata (title, type, status, registration code, issuer, dates, list of historical versions), the table of contents (articles with chunk_key for get_article) and/or the consolidated text, paged by characters (follow next_offset). Costs 1 MCP unit.
პარამეტრები: get_law
სახელი
ტიპი
სავალდ.
ნაგულისხმევი
აღწერა
doc_id
string
კი
—
Numeric matsne document id, e.g. '31702' (Civil Code).
include
array<string>
—
—
Parts to return; default ['meta','toc']. მნიშვნელობები: metatoctext
offset
integer
—
0
Text offset (characters) — pass next_offset to continue. min 0
კანონის ერთი მუხლი ნომრით ან chunk_key-ით, პირდაპირი ბმულით.
Read one article of a law: pass doc_id plus either chunk_key (from get_law toc / find_documents, e.g. 'art_128') or the article number ('128', '128_1'). Returns the article title, full text and a deep link. Costs 1 MCP unit.
უფასო სრულტექსტური ძიება საქართველოს სამართლებრივ ბაზაში ფილტრებით.
Full-text search over the Georgian legal corpus (matsne.gov.ge). Returns matching documents with title, date, type, status, issuer, registration code and a relevance score. Use the returned id with other tools.
პარამეტრები: search_laws
სახელი
ტიპი
სავალდ.
ნაგულისხმევი
აღწერა
query
string
კი
—
Search terms (Georgian or transliterated).
limit
integer
—
20
min 1 · max 200
document_type
string
—
—
Filter by document type (e.g. 'law', 'order').
status
string
—
—
Filter by status (e.g. 'active').
issuer
string
—
—
Filter by issuing authority.
reg_code_prefix
string
—
—
Filter by registration-code prefix; comma-separated for multiple.
მოცემული კანონის მსგავსი დოკუმენტები: წინამორბედები, კანონქვემდებარე აქტები, ცვლილებები.
Documents most similar to a given law (semantic neighbours from the legali.ge document graph) — predecessors, implementing acts, amendments and sister regulations. Free (public data).
legali.ge-ის AI კოპილოტი: პასუხი საქართველოს სამართალზე წყაროების მითითებით.
Ask the legali.ge AI legal copilot a question about Georgian law. It retrieves relevant statutes and court practice and answers with citations (the sources array). Answers in the language of the question. Blocks until the answer is ready unless wait=false.
პარამეტრები: ask_legal_question
სახელი
ტიპი
სავალდ.
ნაგულისხმევი
აღწერა
question
string
კი
—
The legal question (max 5000 chars).
document
string
—
—
Optional matsne document id to focus the answer on one law.
ადგენს იურიდიულ დოკუმენტს (20 ტიპი) მარტივი აღწერიდან, ნორმების მითითებით.
Draft a Georgian legal document from a plain-language description. The backend classifies the case, retrieves the governing statutes and produces a structured draft (markdown) with citations. Blocks until ready unless wait=false. This is the most expensive operation.
პარამეტრები: generate_legal_document
სახელი
ტიპი
სავალდ.
ნაგულისხმევი
აღწერა
question
string
კი
—
Description of the situation / what the document must accomplish.
იღებს ხანგრძლივი AI ოპერაციის შედეგს request_id-ით; ელოდება ~45 წამამდე.
Fetch the result of an ask_legal_question / generate_legal_document / canvas_ai_edit job by its request_id. Waits up to ~45 s for a job that is still running (wait=false: check once). Returns {status:'processing'} if it is still not ready — call again with the same request_id.
აჩვენებს დარჩენილ AI მოთხოვნებსა და MCP ერთეულებს და ფასებს.
Your remaining allowances: AI requests (ask / generate / canvas AI — trial, subscription, packages) and MCP data units for this month, plus the price list. Free.
ტვირთავს PDF-ს, სურათს ან ტექსტს (≤ 4 მბ) სტრუქტურირებული ამოღებისთვის.
Upload a personal legal document (PDF, JPEG, PNG, WebP or text, <=4MB). The backend extracts structured data asynchronously; poll get_user_document for status. Provide either data_b64, or (local stdio only) a filesystem path.
პარამეტრები: upload_user_document
სახელი
ტიპი
სავალდ.
ნაგულისხმევი
აღწერა
filename
string
—
—
content_type
string
—
—
MIME type; inferred from filename/path if omitted.
ქმნის რედაქტირებად დოკუმენტს, სურვილისამებრ შაბლონიდან ან თქვენი ტექსტიდან.
Create a new editable document canvas. Optionally seed it from a document type template and/or initial content. Returns the canvas metadata (including id and headRev).
პარამეტრები: create_canvas
სახელი
ტიპი
სავალდ.
ნაგულისხმევი
აღწერა
document_type
string
—
—
Template to seed from (see generate_legal_document types).
დოკუმენტის კითხვა: რეკვიზიტები, შინაარსი, ჩატი, ნებისმიერი ვერსია.
Fetch a canvas: metadata, content and/or chat thread. Use fields to select what to return; omit rev for the latest revision. Read headRev here before calling save_canvas / restore_canvas.
ინახავს დოკუმენტის ახალ ვერსიას (ოპტიმისტური ბლოკირება base_rev-ით).
Save an edited canvas body as a new revision. base_rev MUST equal the current headRev (read it via get_canvas) — a mismatch is a 409 conflict. op_id is auto-generated if omitted.
პარამეტრები: save_canvas
სახელი
ტიპი
სავალდ.
ნაგულისხმევი
აღწერა
canvas_id
string
კი
—
base_rev
integer
კი
—
The headRev you edited from.
content
string
კი
—
The full new document body.
op_id
string
—
—
Idempotency key (UUID); auto-generated if omitted.
summary
string
—
—
Short change summary for the version list.
filled
array<integer>
—
—
Indices of placeholders filled by this edit.
JSON სქემა
inputSchema
{
"type": "object",
"properties": {
"canvas_id": {
"type": "string"
},
"base_rev": {
"type": "integer",
"description": "The headRev you edited from."
},
"content": {
"type": "string",
"description": "The full new document body."
},
"op_id": {
"type": "string",
"description": "Idempotency key (UUID); auto-generated if omitted."
},
"summary": {
"type": "string",
"description": "Short change summary for the version list."
},
"filled": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Indices of placeholders filled by this edit."
}
},
"required": [
"canvas_id",
"base_rev",
"content"
],
"additionalProperties": false
}
დოკუმენტის AI რედაქტირება: ცარიელი ადგილების შევსება, ფრაგმენტის გადაწერა ან თავიდან შედგენა.
Ask the AI to edit a canvas in place (fill placeholders, redraft a selection, or generate from scratch with mode='generate'). The edit is committed server-side as a new revision. Blocks for the result unless wait=false; afterwards read the new content with get_canvas.
პარამეტრები: canvas_ai_edit
სახელი
ტიპი
სავალდ.
ნაგულისხმევი
აღწერა
canvas_id
string
კი
—
base_rev
integer
კი
—
Current headRev (from get_canvas).
question
string
კი
—
Instruction for the AI editor.
mode
string
—
""
'generate' to (re)generate the whole document. მნიშვნელობები: ""generate
selection
string
—
—
Selected text the edit should target (<=3000 chars).
MCP იყენებს იმავე ანგარიშსა და იმავე ბალანსს, რაც საიტი. ორი საფულეა და არაფერი ორჯერ არ ჩამოიჭრება.
✨ AI მოთხოვნები
ask_legal_question, generate_legal_document და canvas_ai_edit თითო AI მოთხოვნას ხარჯავს — იმავე საფულიდან, რაც საიტზე კოპილოტი: 10 საცდელი მოთხოვნა, შემდეგ ტარიფის თვიური მოთხოვნები, შემდეგ პაკეტები.
📚 MCP ერთეულები
ბაზების ინსტრუმენტები, რომლებიც საიტზე უფასო არ არის — დოკუმენტების AI შერჩევა, სასამართლო პრაქტიკის ძიება და ტექსტების მანქანური კითხვა — MCP ერთეულებს ხარჯავს. ყველა ტარიფს (უფასოსაც) აქვს თვიური ლიმიტი; ერთეულების პაკეტები არ იწვება და ლიმიტის შემდეგ იხარჯება.
🔎 უფასო
სრულტექსტური ძიება, დაკავშირებული დოკუმენტები, შეკითხვების შეთავაზება, პოპულარული მოთხოვნები, თქვენი ჩატები, დოკუმენტები და კანვასები, get_usage, get_chat_response.
დოკუმენტის AI რედაქტირება: ცარიელი ადგილების შევსება, ფრაგმენტის გადაწერა ან თავიდან შედგენა.
1 AI მოთხოვნა
ყველა დანარჩენი ინსტრუმენტი
უფასო
თვიური ლიმიტები
მიმდინარე ფასების სიიდან:
ტარიფი
MCP ერთეული / თვე
AI მოთხოვნა / თვე
ფასი / თვე
ერთეულების პაკეტები (არ იწვება):
ერთეულების აღრიცხვა ახლა სატესტო რეჟიმშია: ხარჯი ითვლება, მაგრამ არ იზღუდება.
მიმდინარე ტარიფები და ერთეულების პაკეტები ტარიფების გვერდზეა.
თვიური ლიმიტი ყოველი კალენდარული თვის 1-ში (UTC) განახლდება და შემდეგ თვეზე არ გადადის. პაკეტები მხოლოდ ლიმიტის ამოწურვის შემდეგ იხარჯება.
ერთეულები მხოლოდ წარმატებული პასუხის შემდეგ ჩამოიჭრება — შეცდომა და ტაიმაუტი უფასოა.
როცა საფულე ამოიწურება, ინსტრუმენტი აბრუნებს შეცდომას (isError) გასაგები შეტყობინებით და შევსების ბმულით; ასისტენტი მას გაჩვენებთ. ავტომატურად არაფერი ჩამოიჭრება.
სთხოვეთ ასისტენტს get_usage-ის გაშვება — ნახავთ ორივე ბალანსს და ფასებს.
აწყობთ ინტეგრაციას ან აგენტს იურიდიული ფირმისთვის? ტარიფს api აქვს ერთეულების დიდი ლიმიტი და AI მოთხოვნები ავტომატური კვლევისთვის.
ტრანსპორტი: MCP Streamable HTTP, რევიზია 2025-06-18 (ასევე 2025-03-26 და 2024-11-05). Endpoint: POST https://mcp.legali.ge/mcp.
Stateless: ყოველი მოთხოვნა ცალკე ავტორიზდება, Mcp-Session-Id არ გაიცემა და ყოველ JSON-RPC მოთხოვნას ერთი application/json პასუხი მოსდევს — SSE ნაკადის გარეშე. GET /mcp აბრუნებს 405-ს, შეტყობინებები (notifications) — 202-ს.
მეთოდები: initialize, ping, tools/list, tools/call. Capabilities: მხოლოდ tools (listChanged: false) — resources, prompts და sampling არ არის.
JSON-RPC batch (შეტყობინებების მასივი) მიიღება და პასუხიც მასივია, მაგრამ 2025-06-18 სპეციფიკაციამ batching ამოიღო — უნივერსალურმა კლიენტებმა მას არ უნდა დაეყრდნონ.
CORS ღიაა (Access-Control-Allow-Origin: *), ამიტომ ბრაუზერული კლიენტები პირდაპირ მიმართავენ endpoint-ს — მაგრამ API გასაღები ბრაუზერში არასოდეს გაგზავნოთ.
შედეგი: content[0].text შეიცავს JSON-ს ტექსტად, ობიექტები ასევე structuredContent-შია. ინსტრუმენტებს აქვთ ანოტაციები (readOnlyHint, destructiveHint…), რომ კლიენტმა წაშლამდე დადასტურება მოითხოვოს.
სერვერის აღწერა (AI-სთვის)
Tools for the legali.ge Georgian legal database: select relevant laws, articles and court practice for a query, read law texts, ask the AI legal copilot (answers cite sources), draft legal documents, manage personal documents and edit document canvases. Public tools work anonymously; tools marked '(requires authentication)' need a Cognito ID token. To research yourself: find_documents → get_law / get_article / search_court_practice (metered in MCP units; get_usage shows the balance). For a finished cited answer use ask_legal_question; to produce a filing use generate_legal_document or the canvas_* tools (these spend AI requests).
ხანგრძლივი AI ოპერაციები
კოპილოტის პასუხს ჩვეულებრივ 1–2 წუთი სჭირდება, დოკუმენტის შედგენას — მეტი; ეს უფრო დიდხანსაა, ვიდრე შუალედური სერვერების უმეტესობა მოთხოვნას ღიად ინახავს. ამიტომ ask_legal_question, generate_legal_document და canvas_ai_edit დაახლოებით 50 წამს ელოდება. თუ შედეგი მზად არ არის, ისინი ჩვეულებრივ (არა შეცდომის) შედეგს აბრუნებენ:
structuredContent
{
"status": "processing",
"request_id": "…",
"next": "The job is still running … Call get_chat_response with this request_id to get the result."
}
შემდეგ გამოიძახეთ get_chat_response იმავე request_id-ით: ის კიდევ დაახლოებით 45 წამს ელოდება და, თუ ოპერაცია ჯერ კიდევ მიმდინარეობს, იმავე „processing“ ობიექტს აბრუნებს — გამოიძახეთ თავიდან. დასრულებისას ბრუნდება status "ready" პასუხითა და წყაროებით. wait: false აგზავნის მოთხოვნას ლოდინის გარეშე (მაგ., რამდენიმე ოპერაციის პარალელურად გასაშვებად); შედეგი მოგვიანებით get_chat_response-ით აიღეთ. AI მოთხოვნა ერთ ოპერაციაზე ერთხელ იხარჯება და არა ყოველ შემოწმებაზე.
python
import json, os, urllib.request
MCP = "https://mcp.legali.ge/mcp"
KEY = os.environ["LEGALI_KEY"] # lgk_… (a personal API key)
def call(name, arguments, _id=[0]):
_id[0] += 1
body = {"jsonrpc": "2.0", "id": _id[0], "method": "tools/call",
"params": {"name": name, "arguments": arguments}}
req = urllib.request.Request(MCP, data=json.dumps(body).encode(), method="POST", headers={
"Authorization": f"Bearer {KEY}",
"Content-Type": "application/json",
"Accept": "application/json, text/event-stream"})
with urllib.request.urlopen(req, timeout=90) as r:
result = json.load(r)["result"]
if result.get("isError"): # e.g. quota exhausted (status 402)
raise RuntimeError(result["content"][0]["text"])
return result["structuredContent"]
res = call("ask_legal_question", {"question": "გამქირავებელი ქირის დეპოზიტს არ მიბრუნებს"})
while res.get("status") == "processing": # not ready within ~50 s
res = call("get_chat_response", {"request_id": res["request_id"]})
print(json.dumps(res, ensure_ascii=False, indent=2))
შეცდომები
რა
მნიშვნელობა
რა ვქნათ
HTTP 401 WWW-Authenticate
ტოკენი არ არის, ვადაგასულია ან გაუქმებულია
OAuth კლიენტი ტოკენს აახლებს ან ავტორიზაციას თავიდან იწყებს; API გასაღების შემთხვევაში შეამოწმეთ, ხომ არ გაუქმდა.
HTTP 405
GET ან სხვა არა-POST მოთხოვნა /mcp-ზე
გააგზავნეთ POST JSON-RPC-ით.
-32700-32600-32601-32602-32603
parse error, არასწორი მოთხოვნა, უცნობი მეთოდი, არასწორი პარამეტრები, შიდა შეცდომა
შეამოწმეთ შეტყობინების ფორმატი (მაგ., tools/call name-ის გარეშე → -32602).
isError: true
ინსტრუმენტი შესრულდა, მაგრამ ბექენდმა უარი თქვა: ტექსტი „Error: … (status N)“
400 არასწორი არგუმენტები · 402 ლიმიტი ამოიწურა (შეტყობინებაში — რომელი საფულე და შევსების ბმული) · 404 ვერ მოიძებნა · 409 კანვასის ვერსიის კონფლიქტი (ხელახლა წაიკითხეთ headRev get_canvas-ით).
გამოყენების რჩევები
კვლევის სქემა: ერთხელ find_documents (10 ერთეული) → get_article მხოლოდ საჭირო მუხლებისთვის (თითო 1 ერთეული) → search_court_practice კონკრეტული საკითხისთვის (2 ერთეული). მთელი კოდექსის კითხვა get_law-ით იშვიათად არის საჭირო.
search_laws უფასოა: გამოიყენეთ, როცა სათაური ან სარეგისტრაციო კოდი იცით; ბუნებრივ ენაზე შეკითხვებისთვის — find_documents.
get_law / get_article შედეგები თქვენს მხარეს დააქეშეთ: კონსოლიდირებული ტექსტი მხოლოდ ცვლილებისას იცვლება, ხოლო get_law-ის meta რედაქციების სიას აჩვენებს.
კანვასის შენახვა ოპტიმისტურია: წაიკითხეთ headRev get_canvas-ით, გადაეცით base_rev-ად; 409-ზე თავიდან წაიკითხეთ და გაიმეორეთ.
დიდი ავტომატური დავალებების წინ შეამოწმეთ ბალანსი get_usage-ით.
ცვლილებების ისტორია
0.2.0 — ბაზების ინსტრუმენტები MCP ერთეულების აღრიცხვით (find_documents, search_court_practice, get_law, get_article, get_usage); OAuth 2.1 კლიენტის დინამიკური რეგისტრაციით და refresh token-ების როტაციით; პირადი API გასაღებები; მისამართი mcp.legali.ge; ხანგრძლივი AI ოპერაციები გრძელდება get_chat_response-ით.
0.1 — პირველი ვერსია: 22 ინსტრუმენტი (ძიება, კოპილოტი, დოკუმენტების შედგენა, პირადი დოკუმენტები, რედაქტორი) legali.ge-ის ანგარიშის ტოკენებით.
უსაფრთხოება და კონფიდენციალურობა
დადასტურების გვერდზე ჩანს აპლიკაციის სახელი და მისამართი, სადაც ის დაბრუნდება, ამიტომ ყალბი აპლიკაცია „დაშვებამდე“ შესამჩნევია.
დაკავშირებული აპლიკაცია თქვენი სახელით მოქმედებს: შეუძლია ის, რაც თქვენ შეგიძლიათ legali.ge-ზე — ძიება და კითხვა, თქვენი AI მოთხოვნებისა და MCP ერთეულების ხარჯვა, თქვენი ჩატების, დოკუმენტებისა და კანვასების ნახვა, შექმნა და წაშლა. დააკავშირეთ მხოლოდ სანდო აპლიკაციები.
პაროლი აპლიკაციას არასოდეს გადაეცემა. კავშირის დადასტურება და გასაღებების მართვა მხოლოდ legali.ge-ზე რეალური სესიით შეიძლება — MCP ტოკენით სხვა აპლიკაციას ვერ დაადასტურებთ.
კაბინეტში კავშირის ან გასაღების გაუქმება მაშინვე მოქმედებს. თუ legali.ge-ის ანგარიში წაიშლება ან დაიბლოკება, მისი ყველა კავშირი წყვეტს მუშაობას.
MCP სერვერი იმავე API-ის თხელი პროქსია, რასაც საიტი იყენებს: მემკვიდრეობით იღებს საკუთრების ყველა შემოწმებასა და ლიმიტს და საკუთარ მონაცემებს არ ინახავს. ბექენდთან ყოველი გამოძახება თქვენი ანგარიშის ხანმოკლე (10 წუთიან) ხელმოწერილ დადასტურებას ატარებს.
ადამიანის უფლებათა ევროპული სასამართლოსა და ვენეციის კომისიის დოკუმენტები საავტორო უფლებების გამო ბრუნდება მოკლე ამონარიდით და ოფიციალური ტექსტის ბმულით.
პასუხებს AI ამზადებს სამართლებრივი წყაროებიდან და ისინი შეიძლება შეიცავდეს შეცდომებს. საქართველოს კანონმდებლობის ოფიციალური წყაროა matsne.gov.ge; დაყრდნობამდე გადაამოწმეთ მითითებული მუხლები.
Claude-ისა და ChatGPT-ის რომელ ტარიფებზე შეიძლება დაკავშირება?
Claude-ში საკუთარი კონექტორები ხელმისაწვდომია Pro, Max, Team და Enterprise ტარიფებზე (claude.ai და Claude Desktop); Team/Enterprise-ზე შეიძლება ორგანიზაციის მფლობელს დასჭირდეს დამატება. ChatGPT-ში საკუთარი MCP კონექტორები developer mode-ის ნაწილია, რომელიც მხოლოდ ზოგიერთ ტარიფზეა — შეამოწმეთ Settings → Apps & Connectors. Claude Code, Cursor და სხვა დეველოპერული ინსტრუმენტები legali.ge-ის ნებისმიერ ანგარიშთან მუშაობს.
ორჯერ ვიხდი, თუ უკვე მაქვს გამოწერა?
არა. AI პასუხი Claude-ის ან ChatGPT-ის მეშვეობით ხარჯავს ერთ მოთხოვნას იმავე ბალანსიდან, რაც საიტზე; MCP ერთეულები მხოლოდ ბაზებთან ოპერაციებისთვისაა და თქვენი ტარიფის თვიურ ლიმიტში შედის.
როგორ გავთიშო აპლიკაცია?
კაბინეტი → AI კავშირები → „გათიშვა“ აპლიკაციის (ან გასაღების) გვერდით. წვდომა მაშინვე წყდება; ხელახლა დასაკავშირებლად ახალი დადასტურება დაგჭირდებათ.
რა ენებს იგებს?
იკითხეთ ნებისმიერ ენაზე. კოპილოტი შეკითხვის ენაზე პასუხობს, find_documents და search_court_practice ნებისმიერ ენაზე იღებს მოთხოვნას, შეკითხვების შეთავაზება კი 9 ენაზეა. კანონებისა და გადაწყვეტილებების ტექსტები ქართულადაა, როგორც გამოქვეყნდა.
ასისტენტი ამბობს, რომ პასუხი ჯერ კიდევ „processing“ სტატუსშია. რა ვქნა?
ყველაფერი რიგზეა: გრძელი პასუხები ფონურ რეჟიმში გრძელდება. ასისტენტმა უნდა გამოიძახოს get_chat_response იმავე request_id-ით — თუ არ გააკეთა, სთხოვეთ. მოთხოვნა ერთხელ იხარჯება.
OAuth თუ API გასაღები — რომელი ავირჩიო?
OAuth, როცა კლიენტი მას უჭერს მხარს: არაფრის კოპირება არ გჭირდებათ, ტოკენები თავად ახლდება და თითო აპლიკაციის გათიშვა ცალკე შეიძლება. API გასაღებები სკრიპტებისთვის, სერვერებისა და იმ კლიენტებისთვისაა, რომლებიც მხოლოდ სათაურს იღებენ.
შეიძლება სერვერის ლოკალურად გაშვება?
სერვერს აქვს ლოკალური stdio რეჟიმიც (python -m gelaw_mcp.server_stdio) legali.ge-ის ანგარიშით ავტორიზაციით — დეველოპმენტისა და საკუთარი ინფრასტრუქტურისთვის. აღრიცხვა legali.ge-ის ბექენდზე ხდება, ამიტომ ფასები და ლიმიტები იგივეა; უმეტესობისთვის ჰოსტინგის მისამართი უფრო მარტივია.
ეს იურიდიული კონსულტაციაა?
არა. legali.ge სამართლებრივი ინფორმაციის სერვისია: AI პასუხები წყაროებს უთითებს, მაგრამ შეიძლება შეცდომა შეიცავდეს, ოფიციალური ტექსტი კი matsne.gov.ge-ზე ქვეყნდება. მნიშვნელოვანი გადაწყვეტილებისთვის მიმართეთ იურისტს.