MCP სერვერი
OpenPR-ის MCP სერვერი ახორციელებს Model Context Protocol-ს, რათა ხელოვნური ინტელექტის აგენტებს მისცეს სტრუქტურირებული წვდომა პროექტების მართვის ოპერაციებზე. ვებ ინტერფეისის სკრინ-სკრეიპინგის ან API დოკუმენტაციის პარსინგის ნაცვლად, აგენტები ურთიერთქმედებენ ტიპიზირებული ინსტრუმენტების განმარტებებით JSON Schema შეყვანის ვალიდაციით.
ტრანსპორტები
Section titled “ტრანსპორტები”MCP სერვერი მხარს უჭერს სამ ტრანსპორტის რეჟიმს:
| ტრანსპორტი | გამოყენების შემთხვევა | ბრძანება |
|---|---|---|
| HTTP | დისტანციური აგენტები, პროდაქშენის გაშლა | mcp-server serve --transport http --bind-addr 0.0.0.0:8090 |
| stdio | ლოკალური აგენტები, IDE ინტეგრაციები | mcp-server serve --transport stdio |
| SSE | ბრაუზერზე დაფუძნებული აგენტები, სტრიმინგი | mcp-server serve --transport sse |
ნაგულისხმევ Docker Compose გაშლაში MCP სერვერი მუშაობს 8090 პორტზე HTTP ტრანსპორტით.
ავტორიზაცია
Section titled “ავტორიზაცია”MCP სერვერი ავტორიზდება ბოტის ტოკენებით opr_ პრეფიქსით. ეს ტოკენები მიბმულია სამუშაო სივრცეზე და ინახება SHA-256 ჰეშების სახით workspace_bots ცხრილში.
ბოტის ტოკენები მხარს უჭერენ:
- ვადის გასვლის თარიღებს (არჩევითი)
- ნებართვების მასივებს (
read,write,admin) - აქტიური/არააქტიური სტატუსს
last_used_atავტომატური თვალყურის დევნებას
კონფიგურაცია
Section titled “კონფიგურაცია”MCP სერვერს სჭირდება ეს გარემოს ცვლადები:
| ცვლადი | აღწერა |
|---|---|
OPENPR_API_URL | OpenPR API-ის საბაზისო URL |
OPENPR_BOT_TOKEN | ბოტის ტოკენი (opr_ პრეფიქსი) ავტორიზაციისთვის |
OPENPR_WORKSPACE_ID | სამუშაო სივრცის UUID |
DEFAULT_AUTHOR_ID | ნაგულისხმევი მომხმარებლის ID ოპერაციებისთვის ექსპლიციტური ავტორის გარეშე |
ინსტრუმენტების კატალოგი
Section titled “ინსტრუმენტების კატალოგი”MCP სერვერი აქვეყნებს 34 ინსტრუმენტს, ორგანიზებულს შემდეგ კატეგორიებად.
პროექტების მართვა (5 ინსტრუმენტი)
Section titled “პროექტების მართვა (5 ინსტრუმენტი)”| ინსტრუმენტი | აღწერა |
|---|---|
projects.list | სამუშაო სივრცეში ყველა პროექტის ჩამოთვლა |
projects.get | პროექტის დეტალების მიღება UUID-ით |
projects.create | ახალი პროექტის შექმნა სახელითა და გასაღებით |
projects.update | პროექტის ველების განახლება |
projects.delete | პროექტის წაშლა |
სამუშაო ერთეულები / ამოცანები (10 ინსტრუმენტი)
Section titled “სამუშაო ერთეულები / ამოცანები (10 ინსტრუმენტი)”| ინსტრუმენტი | აღწერა |
|---|---|
work_items.list | პროექტში ამოცანების ჩამოთვლა არჩევითი ფილტრებით (მდგომარეობა, პრიორიტეტი, მინიჭებული პირი, სპრინტი) |
work_items.get | ერთი ამოცანის მიღება UUID-ით |
work_items.get_by_identifier | ამოცანის მიღება ადამიანისთვის წაკითხვადი გასაღებით (მაგ., PROJ-A1B2C3D4) |
work_items.create | ახალი ამოცანის შექმნა სათაურით, აღწერით, მდგომარეობით, პრიორიტეტით, მინიჭებული პირით |
work_items.update | ამოცანის ველების განახლება (სათაური, აღწერა, მდგომარეობა, პრიორიტეტი, მინიჭებული პირი, სპრინტი) |
work_items.delete | ამოცანის წაშლა |
work_items.search | სრულტექსტური ძებნა ამოცანების სათაურებსა და აღწერებში |
work_items.add_label | ერთი ლეიბლის დამატება ამოცანაზე |
work_items.add_labels | რამდენიმე ლეიბლის დამატება ამოცანაზე ერთი გამოძახებით |
work_items.remove_label | ლეიბლის ამოშლა ამოცანიდან |
work_items.list_labels | ამოცანაზე ყველა ლეიბლის ჩამოთვლა |
სპრინტების მართვა (4 ინსტრუმენტი)
Section titled “სპრინტების მართვა (4 ინსტრუმენტი)”| ინსტრუმენტი | აღწერა |
|---|---|
sprints.create | სპრინტის შექმნა სახელით, დაწყების თარიღით, დასრულების თარიღით |
sprints.list | პროექტში ყველა სპრინტის ჩამოთვლა |
sprints.update | სპრინტის ველების განახლება (სახელი, სტატუსი, თარიღები) |
sprints.delete | სპრინტის წაშლა |
კომენტარები (3 ინსტრუმენტი)
Section titled “კომენტარები (3 ინსტრუმენტი)”| ინსტრუმენტი | აღწერა |
|---|---|
comments.list | ამოცანაზე კომენტარების ჩამოთვლა |
comments.create | ამოცანაზე კომენტარის დამატება |
comments.delete | კომენტარის წაშლა |
ლეიბლები (5 ინსტრუმენტი)
Section titled “ლეიბლები (5 ინსტრუმენტი)”| ინსტრუმენტი | აღწერა |
|---|---|
labels.create | ლეიბლის შექმნა სახელითა და ფერით |
labels.list | სამუშაო სივრცეში ყველა ლეიბლის ჩამოთვლა |
labels.list_project | კონკრეტული პროექტის ლეიბლების ჩამოთვლა |
labels.update | ლეიბლის სახელის ან ფერის განახლება |
labels.delete | ლეიბლის წაშლა |
მმართველობა / წინადადებები (3 ინსტრუმენტი)
Section titled “მმართველობა / წინადადებები (3 ინსტრუმენტი)”| ინსტრუმენტი | აღწერა |
|---|---|
proposals.list | პროექტის წინადადებების ჩამოთვლა, არჩევით სტატუსის ფილტრით |
proposals.get | წინადადების დეტალების მიღება (მხარს უჭერს UUID-სა და PROP- პრეფიქსიან ID-ებს) |
proposals.create | ახალი წინადადების შექმნა სათაურით, აღწერითა და პროექტით |
წევრები (1 ინსტრუმენტი)
Section titled “წევრები (1 ინსტრუმენტი)”| ინსტრუმენტი | აღწერა |
|---|---|
members.list | სამუშაო სივრცეში ყველა წევრის ჩამოთვლა |
ფაილები (1 ინსტრუმენტი)
Section titled “ფაილები (1 ინსტრუმენტი)”| ინსტრუმენტი | აღწერა |
|---|---|
files.upload | ფაილის დანართის ატვირთვა |
ძებნა (1 ინსტრუმენტი)
Section titled “ძებნა (1 ინსტრუმენტი)”| ინსტრუმენტი | აღწერა |
|---|---|
search.all | გლობალური ძებნა ყველა ერთეულის ტიპში |
ინსტრუმენტის შეყვანის სქემა
Section titled “ინსტრუმენტის შეყვანის სქემა”ყველა ინსტრუმენტის განმარტება მოიცავს JSON Schema-ს შეყვანის ვალიდაციისთვის. პარამეტრები იყენებენ UUID ფორმატს ერთეულებზე მითითებისთვის და ავალდებულებენ სავალდებულო ველებს სქემის დონეზე.
მაგალითი: work_items.create შეყვანის სქემა:
{ "type": "object", "properties": { "project_id": { "type": "string", "description": "პროექტის UUID", "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" }, "title": { "type": "string", "description": "ამოცანის სათაური" }, "description": { "type": "string", "description": "ამოცანის აღწერა (არჩევითი)" }, "state": { "type": "string", "description": "ამოცანის მდგომარეობა: backlog, todo, in_progress, done" }, "priority": { "type": "string", "description": "პრიორიტეტი: low, medium, high, urgent" }, "assignee_id": { "type": "string", "description": "მინიჭებული პირის UUID (არჩევითი)" } }, "required": ["project_id", "title"]}ინსტრუმენტის პასუხის ფორმატი
Section titled “ინსტრუმენტის პასუხის ფორმატი”ყველა ინსტრუმენტი აბრუნებს CallToolResult-ს წარმატებული პეილოადით (JSON ფორმატის მონაცემები) ან შეცდომის შეტყობინების სტრიქონით. წარმატებული პასუხები შეიცავს ერთეულის სრულ წარმოდგენას ლამაზად ფორმატირებული JSON-ის სახით.
ხელოვნური ინტელექტის აგენტის დაკავშირება
Section titled “ხელოვნური ინტელექტის აგენტის დაკავშირება”Claude Code / MCP კლიენტის კონფიგურაცია
Section titled “Claude Code / MCP კლიენტის კონფიგურაცია”{ "mcpServers": { "openpr": { "url": "http://localhost:8090/mcp", "transport": "http", "headers": { "Authorization": "Bearer opr_your_bot_token_here" } } }}stdio ტრანსპორტი (ლოკალური)
Section titled “stdio ტრანსპორტი (ლოკალური)”{ "mcpServers": { "openpr": { "command": "/path/to/mcp-server", "args": ["serve", "--transport", "stdio"], "env": { "OPENPR_API_URL": "http://localhost:8081", "OPENPR_BOT_TOKEN": "opr_your_bot_token_here", "OPENPR_WORKSPACE_ID": "your-workspace-uuid" } } }}ხელმისაწვდომი ინსტრუმენტების ჩამოთვლა
Section titled “ხელმისაწვდომი ინსტრუმენტების ჩამოთვლა”MCP სერვერს აქვს ჩაშენებული ინსტრუმენტების ჩამოთვლის უტილიტა:
# ყველა ინსტრუმენტის განმარტების ამობეჭდვა JSON-ადmcp-server list-toolsეს გამოსცემს ყველა ინსტრუმენტის სახელს, აღწერას და შეყვანის სქემას — სასარგებლოა დებაგინგისთვის ან კლიენტის კოდის გენერაციისთვის.
დაკავშირებული
Section titled “დაკავშირებული”- OpenPR მიმოხილვა — არქიტექტურა და გაშლა
- ხელოვნური ინტელექტის ამოცანები — როგორ იგზავნება ამოცანები აგენტებთან
- ვებჰუკები — მოვლენებით მართული ინტეგრაცია
- არქიტექტურის მიმოხილვა — როგორ ჯდება MCP სრულ პაიპლაინში