{"name":"io.github.KazKozDev/abscissa","slug":"kazkozdev-abscissa","title":"Abscissa","description":"Safety-aware MCP server for Linear issues, projects, cycles, and dependencies.","url":"https://mcp.market/server/kazkozdev-abscissa","rating":null,"grade":"B","score":78,"certified":false,"status":"active","category":"devtools","tags":["devtools"],"presence":{"score":23,"stars":1,"forks":0,"downloads_week":30,"last_push_at":"2026-07-11T12:04:26.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/KazKozDev/abscissa","website":"https://github.com/KazKozDev/abscissa","version":"0.1.3","remotes":[],"packages":[{"registryType":"pypi","identifier":"abscissa","version":"0.1.3","transport":{"type":"stdio"},"environmentVariables":[{"description":"Linear personal API key used to authenticate API requests.","isRequired":true,"format":"string","isSecret":true,"name":"LINEAR_API_KEY"}]}],"tools":[{"name":"add_comment","description":"Add a markdown comment to a Linear issue.","write_action":false,"price_micros":0,"input_schema":null},{"name":"add_issue_dependency","description":"Record that blocker_issue_id blocks blocked_issue_id in Linear.","write_action":false,"price_micros":0,"input_schema":null},{"name":"add_issue_label","description":"Add a label to an issue.","write_action":false,"price_micros":0,"input_schema":null},{"name":"add_project_label","description":"Attach an existing project label to a project.","write_action":false,"price_micros":0,"input_schema":null},{"name":"archive_cycle","description":"Archive a cycle. Set confirm=true only after explicit user confirmation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"archive_issue","description":"Archive an issue. Set confirm=true only after explicit user confirmation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"archive_project","description":"Archive a project. Set confirm=true only after explicit user confirmation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"assign_issue","description":"Assign a user to an issue.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_cycle","description":"Create a Linear cycle for a team.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_issue","description":"Create a new Linear issue.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_label","description":"Create a label for a team.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_project","description":"Create a project; team_ids may be comma-separated team keys or UUIDs.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_project_label","description":"Create a reusable project label. Use add_project_label to attach it to a project.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_project_update","description":"Post a project update. Health may be onTrack, atRisk, or offTrack.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_issue","description":"Delete an issue permanently. Set confirm=true only after explicit user confirmation.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_current_user","description":"Return the authenticated Linear user behind the configured API key.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_issue","description":"Get full issue details, including comments, labels, assignee, and dates.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_project","description":"Get a project by UUID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_team","description":"Get a team by key (for example, ART) or UUID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_user_issues","description":"Get a user's assigned issues; omit user_id to retrieve the authenticated user's issues.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_cycle_issues","description":"List issues in a cycle. Pass next_cursor as cursor for the next page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_cycles","description":"List workspace cycles, optionally filtered by a team key or UUID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_issue_dependencies","description":"List issues this issue blocks and issues that block it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_issue_labels","description":"List labels for a team. Pass next_cursor as cursor for the next page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_project_issues","description":"List a project's issues. Pass next_cursor as cursor for the next page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_project_labels","description":"List reusable project labels. Pass next_cursor as cursor for the next page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_project_updates","description":"List a project's updates. Pass next_cursor as cursor for the next page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_projects","description":"List projects. Pass next_cursor as cursor for the next page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_teams","description":"List teams. Pass next_cursor as cursor for the next page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_users","description":"List organization users. Pass next_cursor as cursor for the next page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_workflow_states","description":"List workflow states for a team. Pass next_cursor as cursor for the next page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"remove_issue_dependency","description":"Remove an issue dependency by its relation ID.","write_action":true,"price_micros":0,"input_schema":null},{"name":"remove_issue_from_project","description":"Remove an issue from its current Linear project.","write_action":true,"price_micros":0,"input_schema":null},{"name":"remove_issue_label","description":"Remove a label from an issue.","write_action":true,"price_micros":0,"input_schema":null},{"name":"remove_project_label","description":"Remove a project label from a project without deleting the reusable label.","write_action":true,"price_micros":0,"input_schema":null},{"name":"search_issues","description":"Search Linear issues with filters. Pass next_cursor as cursor for the next page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_issue_estimate","description":"Set story points or an hour estimate on an issue.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_issue_project","description":"Add an issue to a Linear project.","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_cycle","description":"Update a cycle's name, description, or ISO 8601 start and end timestamps.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_issue","description":"Update an existing Linear issue. Use a UUID or identifier such as ART-5.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_project","description":"Update a project's name, summary, or status.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_project_details","description":"Update a project's detailed fields.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":78,"grade":"B","scanned_at":"2026-09-26T05:13:08.031Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-26T05:13:08.041Z","components":{"code":{"score":25,"max":25,"notes":["4 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":12,"max":15,"notes":["last push 77 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"abscissa","version":"0.1.3","found":true,"weeklyDownloads":30,"license":"MIT","dependencyCount":5,"publishedAt":"2026-07-11T12:05:15.244547Z","repositoryUrl":"https://github.com/KazKozDev/abscissa"}],"repo":{"found":true,"owner":"KazKozDev","repo":"abscissa","archived":false,"pushedAt":"2026-07-11T12:04:26Z","stars":1,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/159002820?v=4","ownerCreatedAt":"2024-02-05T08:08:07Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/159002820?v=4&s=128","source":"github"},"presence":{"stars":1,"forks":0,"downloadsWeek":30,"license":"MIT","lastPushAt":"2026-07-11T12:04:26.000Z","score":23}}}},"grade_history":[],"reviews":[]}