{"apiVersion":"v1","directorySlug":"mesrai-mcp-84f0e43ea6","title":"Mesrai – Free AI Code Review Tool","description":"Best AI code review tool for startups and developers. AI-powered code analysis on every PR — catches bugs, security vulnerabilities & performance issues automatically. 100% free.","pageUrl":"https://www.mcpbundles.com/skills/mesrai-mcp-84f0e43ea6","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://api.mesrai.com/mcp","hostedMcpUrl":null,"toolCount":22,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.mesrai/mesrai-mcp-84f0e43ea6","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"MESRAI_LIST_REPOSITORIES","description":"List all repositories accessible to the team. Use this to discover available repositories, check repository metadata (private/public, archived status, languages), or when you need to see what repositories exist before performing other operations.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["organizationId","teamId"],"properties":{"teamId":{"type":"string"},"filters":{"type":"object","properties":{"private":{"type":"boolean"},"archived":{"type":"boolean"},"language":{"type":"string"}}},"organizationId":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"MESRAI_LIST_REPOSITORIES","displayName":"MESRAI_LIST_REPOSITORIES","title":"MESRAI_LIST_REPOSITORIES"},{"name":"MESRAI_LIST_PULL_REQUESTS","description":"List pull requests with advanced filtering (by state, repository, author, date range). Use this to find specific PRs, analyze PR patterns, or get overview of team activity. Returns PR metadata only - use get_pull_request for full PR content.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["organizationId","teamId"],"properties":{"teamId":{"type":"string"},"filters":{"type":"object","properties":{"state":{"enum":["opened","closed","merged"],"type":"string"},"author":{"type":"string"},"endDate":{"type":"string"},"startDate":{"type":"string"},"repository":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}}},"organizationId":{"type":"string"}}},"logicalName":"MESRAI_LIST_PULL_REQUESTS","displayName":"MESRAI_LIST_PULL_REQUESTS","title":"MESRAI_LIST_PULL_REQUESTS","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"MESRAI_LIST_COMMITS","description":"List commit history from repositories with filtering by author, date range, or branch. Use this to analyze commit patterns, find specific commits, or track development activity. Returns commit metadata and messages.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["organizationId","teamId"],"properties":{"teamId":{"type":"string"},"filters":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"},"author":{"type":"string"},"branch":{"type":"string"}}},"repository":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}},"organizationId":{"type":"string"}}},"logicalName":"MESRAI_LIST_COMMITS","displayName":"MESRAI_LIST_COMMITS","title":"MESRAI_LIST_COMMITS","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"MESRAI_GET_PULL_REQUEST","description":"Get complete details of a specific pull request including description, commits, reviews, and list of modified files. Use this when you need full PR context - NOT for file content (use get_pull_request_file_content for that).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["organizationId","teamId","repository","prNumber"],"properties":{"teamId":{"type":"string"},"prNumber":{"type":"number"},"repository":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}},"organizationId":{"type":"string"}}},"logicalName":"MESRAI_GET_PULL_REQUEST","displayName":"MESRAI_GET_PULL_REQUEST","title":"MESRAI_GET_PULL_REQUEST","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"MESRAI_GET_REPOSITORY_FILES","description":"Get file tree/listing from a repository branch with pattern filtering. Use this to explore repository structure, find specific files by pattern, or get overview of codebase organization. Returns file paths only - NOT file content.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["organizationId","teamId","repository"],"properties":{"branch":{"type":"string"},"teamId":{"type":"string"},"maxFiles":{"type":"number","default":1000},"repository":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}},"filePatterns":{"type":"array","items":{"type":"string"}},"organizationId":{"type":"string"},"excludePatterns":{"type":"array","items":{"type":"string"}}}},"logicalName":"MESRAI_GET_REPOSITORY_FILES","displayName":"MESRAI_GET_REPOSITORY_FILES","title":"MESRAI_GET_REPOSITORY_FILES","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"MESRAI_GET_REPOSITORY_CONTENT","description":"Get the current content of a specific file from a repository branch. Use this to read files from the main/current branch - NOT from pull requests (use get_pull_request_file_content for PR files).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["organizationId","teamId","repository","organizationName","filePath","branch"],"properties":{"branch":{"type":"string"},"teamId":{"type":"string"},"filePath":{"type":"string"},"repository":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}},"organizationId":{"type":"string"},"organizationName":{"type":"string"}}},"logicalName":"MESRAI_GET_REPOSITORY_CONTENT","displayName":"MESRAI_GET_REPOSITORY_CONTENT","title":"MESRAI_GET_REPOSITORY_CONTENT","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"MESRAI_GET_PULL_REQUEST_FILE_CONTENT","description":"Get the modified content of a specific file within a pull request context. Use this to read how a file looks AFTER the PR changes are applied - NOT the original version.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["organizationId","teamId","repository","prNumber","filePath"],"properties":{"teamId":{"type":"string"},"filePath":{"type":"string"},"prNumber":{"type":"number"},"repository":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}},"organizationId":{"type":"string"}}},"logicalName":"MESRAI_GET_PULL_REQUEST_FILE_CONTENT","displayName":"MESRAI_GET_PULL_REQUEST_FILE_CONTENT","title":"MESRAI_GET_PULL_REQUEST_FILE_CONTENT","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"MESRAI_GET_DIFF_FOR_FILE","description":"Get the exact diff/patch showing what changed in a specific file within a pull request. Use this to see the precise changes made - additions, deletions, and modifications line by line.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["organizationId","teamId","repository","prNumber","filePath"],"properties":{"teamId":{"type":"string"},"filePath":{"type":"string"},"prNumber":{"type":"number"},"repository":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}},"organizationId":{"type":"string"}}},"logicalName":"MESRAI_GET_DIFF_FOR_FILE","displayName":"MESRAI_GET_DIFF_FOR_FILE","title":"MESRAI_GET_DIFF_FOR_FILE","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"MESRAI_GET_PULL_REQUEST_DIFF","description":"Get the complete diff/patch for an entire Pull Request showing all changes across all files. Use this to see the full context of what changed in the PR, including additions, deletions, and modifications across all modified files.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["organizationId","teamId","repositoryId","prNumber"],"properties":{"teamId":{"type":"string"},"prNumber":{"type":"number"},"repositoryId":{"type":"string"},"organizationId":{"type":"string"},"repositoryName":{"type":"string"}}},"logicalName":"MESRAI_GET_PULL_REQUEST_DIFF","displayName":"MESRAI_GET_PULL_REQUEST_DIFF","title":"MESRAI_GET_PULL_REQUEST_DIFF","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"MESRAI_GET_MESRAI_RULES","description":"Get all Mesrai Rules at organization level. Use this to see organization-wide coding standards, global rules that apply across all repositories, or when you need a complete overview of rules. Returns rules with ACTIVE and PENDING status.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["organizationId"],"properties":{"organizationId":{"type":"string"}}},"logicalName":"MESRAI_GET_MESRAI_RULES","displayName":"MESRAI_GET_MESRAI_RULES","title":"MESRAI_GET_MESRAI_RULES","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"MESRAI_GET_MESRAI_RULES_REPOSITORY","description":"Get Mesrai Rules specific to a particular repository. Use this to see repository-specific coding standards, rules that only apply to one codebase, or when analyzing rules for a specific project. More focused than get_mesrai_rules. Returns rules with ACTIVE and PENDING status.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["organizationId","repositoryId"],"properties":{"repositoryId":{"type":"string"},"organizationId":{"type":"string"}}},"logicalName":"MESRAI_GET_MESRAI_RULES_REPOSITORY","displayName":"MESRAI_GET_MESRAI_RULES_REPOSITORY","title":"MESRAI_GET_MESRAI_RULES_REPOSITORY","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"MESRAI_CREATE_MESRAI_RULE","description":"Create a new Mesrai Rule with custom scope and severity. pull_request scope: analyzes entire PR context for PR-level rules. file scope: analyzes individual files one by one for file-level rules. Rule starts in pending status. If centralized config is enabled the rule will be published to a pull request pending to be approved.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["organizationId","mesraiRule"],"properties":{"mesraiRule":{"type":"object","required":["title","rule","severity","scope"],"properties":{"path":{"type":"string"},"rule":{"type":"string"},"scope":{"enum":["pull-request","file"],"type":"string"},"teamId":{"type":"string"},"severity":{"enum":["low","medium","high","critical"],"type":"string"},"directoryId":{"type":"string"},"inheritance":{"type":"object","required":["inheritable"],"properties":{"exclude":{"type":"array","items":{"type":"string"}},"include":{"type":"array","items":{"type":"string"}},"inheritable":{"type":"boolean"}}},"repositoryId":{"type":"string"}}},"organizationId":{"type":"string"}}},"logicalName":"MESRAI_CREATE_MESRAI_RULE","displayName":"MESRAI_CREATE_MESRAI_RULE","title":"MESRAI_CREATE_MESRAI_RULE","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"MESRAI_UPDATE_MESRAI_RULE","description":"Update an existing Mesrai Rule. Only the fields provided in mesraiRule will be updated. Use this to modify rule details, change severity, scope, or status of existing rules. If centralized config is enabled the update will be published to a pull request pending to be approved.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["organizationId","ruleId","mesraiRule"],"properties":{"ruleId":{"type":"string"},"mesraiRule":{"type":"object","properties":{"path":{"type":"string"},"rule":{"type":"string"},"scope":{"enum":["pull-request","file"],"type":"string"},"status":{"enum":["active","rejected","pending","applied","deleted","paused"],"type":"string"},"teamId":{"type":"string"},"severity":{"enum":["low","medium","high","critical"],"type":"string"},"directoryId":{"type":"string"},"repositoryId":{"type":"string"}}},"organizationId":{"type":"string"}}},"logicalName":"MESRAI_UPDATE_MESRAI_RULE","displayName":"MESRAI_UPDATE_MESRAI_RULE","title":"MESRAI_UPDATE_MESRAI_RULE","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"MESRAI_DELETE_MESRAI_RULE","description":"Delete a Mesrai Rule permanently from the system. This action cannot be undone. Use this to remove rules that are no longer needed or relevant. If centralized config is enabled the deletion will be published to a pull request pending to be approved.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["organizationId","ruleId"],"properties":{"ruleId":{"type":"string"},"teamId":{"type":"string"},"organizationId":{"type":"string"}}},"logicalName":"MESRAI_DELETE_MESRAI_RULE","displayName":"MESRAI_DELETE_MESRAI_RULE","title":"MESRAI_DELETE_MESRAI_RULE","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"MESRAI_CREATE_MEMORY","description":"Capture a memory, preference, or coding rule derived from context to influence future interactions or code generation. Invoke this tool whenever the user demonstrates an explicit or implicit intent to save a memory, establish a convention, or note a preference. Focus on capturing the user intent rather than strictly evaluating it as a permanent architectural rule. After execution, ALWAYS inform the user of: (1) final decision/action (created or updated), (2) whether approval is required in UI, a","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["organizationId","teamId","mesraiRule"],"properties":{"teamId":{"type":"string"},"mesraiRule":{"type":"object","required":["title","rule"],"properties":{"path":{"type":"string"},"rule":{"type":"string"},"directoryId":{"type":"string"},"repositoryId":{"type":"string"}}},"organizationId":{"type":"string"}}},"logicalName":"MESRAI_CREATE_MEMORY","displayName":"MESRAI_CREATE_MEMORY","title":"MESRAI_CREATE_MEMORY","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"MESRAI_FIND_MEMORIES","description":"Search and retrieve saved memories for the organization. Supports filtering by repository, directory, path glob, and keywords in title/content. Returns newest matches first.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["organizationId","teamId"],"properties":{"path":{"type":"string"},"limit":{"type":"integer","maximum":20,"minimum":1},"teamId":{"type":"string"},"keywords":{"type":"array","items":{"type":"string"}},"directoryId":{"type":"string"},"repositoryId":{"type":"string"},"organizationId":{"type":"string"}}},"logicalName":"MESRAI_FIND_MEMORIES","displayName":"MESRAI_FIND_MEMORIES","title":"MESRAI_FIND_MEMORIES","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"MESRAI_CREATE_MESRAI_ISSUE","description":"Create a new Mesrai Issue manually via MCP","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["organizationId","title","description","filePath","language","label","severity","repository","originalMesraiCommentId","pullRequestNumber"],"properties":{"label":{"enum":["performance_and_optimization","security","error_handling","refactoring","maintainability","potential_issues","code_style","documentation_and_comments","mesrai_rules","breaking_changes","bug","performance","cross_file","business_logic"],"type":"string"},"owner":{"type":"object","required":["gitId","username"],"properties":{"gitId":{"type":"number"},"username":{"type":"string"}},"additionalProperties":false},"filePath":{"type":"string"},"language":{"type":"string"},"reporter":{"type":"object","required":["gitId","username"],"properties":{"gitId":{"type":"number"},"username":{"type":"string"}},"additionalProperties":false},"severity":{"enum":["critical","high","medium","low"],"type":"string"},"repository":{"type":"object","required":["id","platformType"],"properties":{"id":{"type":"string"},"platformType":{"enum":["INTERNAL","GITHUB","GITLAB","JIRA","SLACK","NOTION","MSTEAMS","DISCORD","AZURE_BOARDS","AZURE_REPOS","MESRAI_WEB","BITBUCKET","FORGEJO"],"type":"string"}},"additionalProperties":false},"organizationId":{"type":"string"},"pullRequestNumber":{"type":"number"},"originalMesraiCommentId":{"type":"number"}}},"logicalName":"MESRAI_CREATE_MESRAI_ISSUE","displayName":"MESRAI_CREATE_MESRAI_ISSUE","title":"MESRAI_CREATE_MESRAI_ISSUE","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"MESRAI_LIST_MESRAI_ISSUES","description":"List Mesrai Issues with optional filters","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["organizationId"],"properties":{"label":{"enum":["performance_and_optimization","security","error_handling","refactoring","maintainability","potential_issues","code_style","documentation_and_comments","mesrai_rules","breaking_changes","bug","performance","cross_file","business_logic"],"type":"string"},"severity":{"enum":["critical","high","medium","low"],"type":"string"},"organizationId":{"type":"string"},"repositoryName":{"type":"string"}}},"logicalName":"MESRAI_LIST_MESRAI_ISSUES","displayName":"MESRAI_LIST_MESRAI_ISSUES","title":"MESRAI_LIST_MESRAI_ISSUES","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"MESRAI_GET_MESRAI_ISSUE_DETAILS","description":"Get a Mesrai Issue by id","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["issueId"],"properties":{"issueId":{"type":"string"},"organizationId":{"type":"string"}}},"logicalName":"MESRAI_GET_MESRAI_ISSUE_DETAILS","displayName":"MESRAI_GET_MESRAI_ISSUE_DETAILS","title":"MESRAI_GET_MESRAI_ISSUE_DETAILS","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"MESRAI_UPDATE_MESRAI_ISSUE_STATUS","description":"Update issue status","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["issueId","status"],"properties":{"status":{"enum":["open","resolved","dismissed"],"type":"string"},"issueId":{"type":"string"}}},"logicalName":"MESRAI_UPDATE_MESRAI_ISSUE_STATUS","displayName":"MESRAI_UPDATE_MESRAI_ISSUE_STATUS","title":"MESRAI_UPDATE_MESRAI_ISSUE_STATUS","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"MESRAI_UPDATE_MESRAI_ISSUE_CATEGORY","description":"Update issue category/label","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["issueId","label"],"properties":{"label":{"enum":["performance_and_optimization","security","error_handling","refactoring","maintainability","potential_issues","code_style","documentation_and_comments","mesrai_rules","breaking_changes","bug","performance","cross_file","business_logic"],"type":"string"},"issueId":{"type":"string"}}},"logicalName":"MESRAI_UPDATE_MESRAI_ISSUE_CATEGORY","displayName":"MESRAI_UPDATE_MESRAI_ISSUE_CATEGORY","title":"MESRAI_UPDATE_MESRAI_ISSUE_CATEGORY","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"MESRAI_DELETE_MESRAI_ISSUE","description":"Close/dismiss an issue","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["issueId"],"properties":{"issueId":{"type":"string"}}},"logicalName":"MESRAI_DELETE_MESRAI_ISSUE","displayName":"MESRAI_DELETE_MESRAI_ISSUE","title":"MESRAI_DELETE_MESRAI_ISSUE","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Mesrai-Free-AI-Code-Review-Tool&config=eyJ1cmwiOiAiaHR0cHM6Ly9hcGkubWVzcmFpLmNvbS9tY3AifQ%3D%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Mesrai-Free-AI-Code-Review-Tool%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fapi.mesrai.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Mesrai-Free-AI-Code-Review-Tool%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fapi.mesrai.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Mesrai+%E2%80%93+Free+AI+Code+Review+Tool&connectorUrl=https%3A%2F%2Fapi.mesrai.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Mesrai-Free-AI-Code-Review-Tool\" --url \"https://api.mesrai.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/mesrai-mcp-84f0e43ea6","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/mesrai-mcp-84f0e43ea6/tools/{tool}","mcpServerUrl":"https://api.mesrai.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/mesrai-mcp-84f0e43ea6?live=1"}