תקציר Pull Requests ליום שני
Every Monday at 9:00, list the open pull requests in my main repository, note how long each one has been waiting and who is due to review it, and save the list as pr-digest.md.
שרת MCP מאומת: GitHub
התשובה הקצרה
אומת לאחרונה 2026-08-03
שרת ה-MCP של GitHub הוא השרת של GitHub עצמה ל-Model Context Protocol, כתוב ב-Go ומפורסם על ידי הארגון github. יש שתי דרכים נתמכות להריץ אותו: נקודת הקצה ש-GitHub מארחת בכתובת api.githubcopilot.com/mcp/, שאליה מגיע כל לקוח MCP על גבי HTTPS עם טוקן של GitHub, ואימג׳ קונטיינר שמריצים בעצמכם. אימתנו את המתארחת, כי זו הדרך שאינה דורשת Docker ואינה דורשת בנייה. השלמנו מולה את לחיצת היד של MCP, ספרנו את כל 47 הכלים שהיא מחזירה כברירת מחדל, והרצנו קריאה אמיתית אחת לקריאה בלבד. אחר כך פתחנו חיבור שני עם כותרת הקריאה בלבד וראינו את המספר יורד ל-28, כשכל כלי הכתיבה נעלמו מהרשימה. הפלט הגולמי, כולל השגיאות המדויקות, נמצא בעמוד הזה. [1][4][3]
אימות
השיטה
השרת שאימתנו הוא זה ש-GitHub מארחת בכתובת https://api.githubcopilot.com/mcp/, ולכן אין תהליך מקומי ואין באנר הפעלה לקרוא. דיברנו איתו Streamable HTTP מה-Mac הזה: קודם initialize גולמי של JSON-RPC ישירות על החיבור, וזה הבלוק שמודפס למטה, אחר כך אותה לחיצת יד דרך לקוח ה-SDK של MCP, אחר כך tools/list, ואחר כך קריאת כלי אמיתית אחת לקריאה בלבד. פתחנו גם חיבור שני שנשא את כותרת הקריאה בלבד, ו-tools/list החזיר 28 כלים במקום 47. ההזדהות נעשתה עם טוקן גישה אישי שנקרא מ-gh CLI מחובר מראש, והוא אינו מודפס בשום מקום. השרת הזה אינו חבילת npm אלא קובץ הרצה ב-Go ואימג׳ קונטיינר, ולכן שורת החבילה למעלה נושאת את הגרסה המתויגת האחרונה שנקראה מ-API הגרסאות של GitHub, בעוד שנקודת הקצה מדווחת בעצמה על הבנייה שלה. עוד דבר על הבלוק שמודפס למטה: זו אותה לכידה כששני חלקים הוצאו ממנה כדי שתיכנס לעמוד, מחרוזת ההוראות הארוכה ושני בלובי האייקונים ב-base64, והלכידה המלאה שמורה בקבלות האימות.
הודעת הפתיחה של השרת
event: message
data: {"jsonrpc":"2.0","id":1,"result":{"capabilities":{"completions":{},"prompts":{},"resources":{},"tools":{}},"protocolVersion":"2025-06-18","serverInfo":{"name":"github-mcp-server","title":"GitHub MCP Server","version":"github-mcp-server/remote-112de3b831975632257acbdeb73b577f32ea1762"}}}קריאת כלי אמיתית אחת
tools/call search_repositories {"query": "repo:github/github-mcp-server", "minimal_output": true}{"total_count":1,"incomplete_results":false,"items":[{"id":942771284,"name":"github-mcp-server","full_name":"github/github-mcp-server","description":"GitHub's official MCP Server","html_url":"https://github.com/github/github-mcp-server","language":"Go","stargazers_count":31908,"forks_count":4703,"open_issues_count":349,"updated_at":"2026-08-03T03:05:44Z","created_at":"2025-03-04T16:42:04Z","topics":["github","mcp","mcp-server"],"private":false,"fork":false,"archived":false,"default_branch":"main"}]}שורות אמיתיות מהתוצאה שנלכדה: מספיק כדי להוכיח שהקריאה נענתה.
כלים
השרת ענה ל-tools/list עם 47 כלים בתאריך 2026-08-03. השמות, התיאורים והפרמטרים למטה הם המילים שלו עצמו, מועתקים מהתשובה הזו וללא עריכה.
| כלי | מה הוא עושה |
|---|---|
| add_comment_to_pending_reviewbody*lineowner*path*pullNumber*repo*sidestartLinestartSidesubjectType* | Add review comment to the requester's latest pending pull request review. A pending review needs to already exist to call this (check with the user if not sure). |
| add_issue_commentbodycomment_idissue_number*owner*reactionrepo* | Add a comment and/or reaction to a specific issue or issue comment in a GitHub repository. Use this tool with pull requests as well (in this case pass pull request number as issue_number), but only if user is not asking specifically to add or react to review comments. At least one of body or reaction is required. |
| add_reply_to_pull_request_commentbodycommentId*owner*pullNumberreactionrepo* | Add a reply and/or reaction to an existing pull request comment. This can create a new comment linked as a reply to the specified comment, add an emoji reaction to the specified comment, or do both. At least one of body or reaction is required. |
| assign_copilot_to_issuebase_refcustom_instructionsissue_number*owner*repo* | Assign Copilot to a specific issue in a GitHub repository. This tool can help with the following outcomes: - a Pull Request created with source code changes to resolve the issue More information can be found at: - https://docs.github.com/en/copilot/concepts/agents/cloud-agent/about-cloud-agent |
| create_branchbranch*from_branchowner*repo* | Create a new branch in a GitHub repository |
| create_or_update_filebranch*content*message*owner*path*repo*sha | Create or update a single file in a GitHub repository. If updating, you should provide the SHA of the file you want to update. Use this tool to create or update a file in a GitHub repository remotely; do not use it for local file operations. In order to obtain the SHA of original file version before updating, use the following git command: git rev-parse <branch>:<path to file> SHA MUST be provided for existing file updates. |
| create_pull_requestbase*bodydrafthead*maintainer_can_modifyowner*repo*reviewerstitle* | Create a new pull request in a GitHub repository. |
| create_pull_request_with_copilotbase_refowner*problem_statement*repo*title* | Delegate a task to GitHub Copilot coding agent to perform in the background. The agent will create a pull request with the implementation. You should use this tool if the user asks to create a pull request to perform a specific task, or if the user asks Copilot to do something. |
| create_repositoryautoInitdescriptionname*organizationprivate | Create a new GitHub repository in your account or specified organization |
| delete_filebranch*message*owner*path*repo* | Delete a file from a GitHub repository |
| fork_repositoryorganizationowner*repo* | Fork a GitHub repository to your account or specified organization |
| get_commitdetailowner*pageperPagerepo*sha* | Get details for a commit from a GitHub repository |
| get_copilot_job_statusid*owner*repo* | Get the status of a GitHub Copilot coding agent job. Use this to check if a previously submitted task has completed and to get the pull request URL once it's created. Provide the job ID (from create_pull_request_with_copilot) or pull request number (from assign_copilot_to_issue), or any pull request you want agent sessions for. |
| get_file_contentsfieldsowner*pathrefrepo*sha | Get the contents of a file or directory from a GitHub repository |
| get_labelname*owner*repo* | Get a specific label from a repository. |
| get_latest_releaseowner*repo* | Get the latest release in a GitHub repository |
| get_me | Get details of the authenticated GitHub user. Use this when a request is about the user's own profile for GitHub. Or when information is missing to build other tool calls. |
| get_release_by_tagowner*repo*tag* | Get a specific release by its tag name in a GitHub repository |
| get_tagowner*repo*tag* | Get details about a specific git tag in a GitHub repository |
| get_team_membersorg*team_slug* | Get member usernames of a specific team in an organization. Limited to organizations accessible with current credentials |
| get_teamsuser | Get details of the teams the user is a member of. Limited to organizations accessible with current credentials |
| issue_readissue_number*method*owner*pageperPagerepo* | Get information about a specific issue in a GitHub repository. |
| issue_writeassigneesbodyduplicate_ofissue_fieldsissue_numberlabelsmethod*milestoneowner*repo*statestate_reasontitletype | Create a new or update an existing issue in a GitHub repository. |
| list_branchesowner*pageperPagerepo* | List branches in a GitHub repository |
| list_commitsauthorfieldsowner*pagepathperPagerepo*shasinceuntil | Get list of commits of a branch in a GitHub repository. Returns at least 30 results per page by default, but can return more if specified using the perPage parameter (up to 100). |
| list_issue_fieldsowner*repo | List issue fields for a repository or organization. Returns field definitions including name, type (text, number, date, single_select), and for single_select fields the list of valid option names. When repo is omitted, returns org-level fields directly. |
| list_issue_typesowner*repo | List supported issue types for a repository or its owner organization. When repo is omitted, returns org-level issue types directly. |
| list_issuesafterdirectionfield_filtersfieldslabelsorderByowner*perPagerepo*sincestate | List issues in a GitHub repository. For pagination, use the 'endCursor' from the previous response's 'pageInfo' in the 'after' parameter. |
| list_pull_requestsbasedirectionfieldsheadowner*pageperPagerepo*sortstate | List pull requests in a GitHub repository. If the user specifies an author, then DO NOT use this tool and use the search_pull_requests tool instead. |
| list_releasesfieldsowner*pageperPagerepo* | List releases in a GitHub repository |
| list_repository_collaboratorsaffiliationowner*pageperPagerepo* | List collaborators of a GitHub repository. Results are paginated; the response includes `nextPage`, `prevPage`, `firstPage`, and `lastPage` fields. To get the next page, use the `nextPage` value as the `page` parameter. |
| list_tagsowner*pageperPagerepo* | List git tags in a GitHub repository |
| merge_pull_requestcommit_messagecommit_titlemerge_methodowner*pullNumber*repo* | Merge a pull request in a GitHub repository. |
| pull_request_readaftermethod*owner*pageperPagepullNumber*repo* | Get information on a specific pull request in GitHub repository. |
| pull_request_review_writebodycommitIDeventmethod*owner*pullNumber*repo*threadId | Create and/or submit, delete review of a pull request. Available methods: - create: Create a new review of a pull request. If "event" parameter is provided, the review is submitted. If "event" is omitted, a pending review is created. - submit_pending: Submit an existing pending review of a pull request. This requires that a pending review exists for the current user on the specified pull request. The "body" and "event" parameters are used when submitting the review. - delete_pending: Delete an existing pending review of a pull request. This requires that a pending review exists for the current user on the specified pull request. - resolve_thread: Resolve a review thread. Requires only "threadId" parameter with the thread's node ID (e.g., PRRT_kwDOxxx). The owner, repo, and pullNumber parameters are not used for this method. Resolving an already-resolved thread is a no-op. - unresolve_thread: Unresolve a previously resolved review thread. Requires only "threadId" parameter. The owner, repo, and pullNumber parameters are not used for this method. Unresolving an already-unresolved thread is a no-op. |
| push_filesbranch*files*message*owner*repo* | Push multiple files to a GitHub repository in a single commit |
| request_copilot_reviewowner*pullNumber*repo* | Request a GitHub Copilot code review for a pull request. Use this for automated feedback on pull requests, usually before requesting a human reviewer. |
| run_secret_scanningfiles*owner*repo* | Scan files, content, or recent changes for secrets such as API keys, passwords, tokens, and credentials. This tool is intended for targeted scans of specific files, snippets, or diffs provided directly as content. The files parameter accepts either a single string or an array of strings containing raw file contents or diff hunks, and returns detected secrets with their locations and related secret scanning metadata. Content must not be empty. For full repository scanning, other mechanisms are available. Caveats: - Only files within the codebase should be scanned. Files outside of the codebase should not be sent. - Files listed in .gitignore should be skipped. |
| search_codefieldsorderpageperPagequery*sort | Fast and precise code search across ALL GitHub repositories using GitHub's native search engine. Best for finding exact symbols, functions, classes, or specific code patterns. |
| search_commitsorderpageperPagequery*sort | Search for commits across GitHub repositories using GitHub's commit search syntax. Useful for finding specific changes, authors, or messages across one or many repositories. Searches the default branch only. |
| search_issuesfieldsorderownerpageperPagequery*reposort | Search for issues in GitHub repositories using issues search syntax already scoped to is:issue |
| search_pull_requestsfieldsorderownerpageperPagequery*reposort | Search for pull requests in GitHub repositories using issues search syntax already scoped to is:pr |
| search_repositoriesminimal_outputorderpageperPagequery*sort | Find GitHub repositories by name, description, readme, topics, or other metadata. Perfect for discovering projects, finding examples, or locating specific repositories across GitHub. |
| search_usersorderpageperPagequery*sort | Find GitHub users by username, real name, or other profile information. Useful for locating developers, contributors, or team members. |
| sub_issue_writeafter_idbefore_idissue_number*method*owner*replace_parentrepo*sub_issue_id* | Add a sub-issue to a parent issue in a GitHub repository. |
| update_pull_requestbasebodydraftmaintainer_can_modifyowner*pullNumber*repo*reviewersstatetitle | Update an existing pull request in a GitHub repository. |
| update_pull_request_branchexpectedHeadShaowner*pullNumber*repo* | Update the branch of a pull request with the latest changes from the base branch. |
פרמטרים המסומנים ב-* הם חובה.
התקנה
העתיקו את הבלוק של האפליקציה שלכם. כל אחד מהם הוא ההגדרה המדויקת שאיתה אימתנו את השרת.
Claude Desktop מתחבר לשרת מתארח דרך מחבר מותאם, ולא דרך קובץ ה-JSON. פתחו Settings, אחר כך Connectors, לחצו Add ובחרו Add custom connector:
Name GitHub URL https://api.githubcopilot.com/mcp/
Claude ישלח אתכם להתחברות ל-GitHub, ולכן אין טוקן להדביק: נקודת הקצה מפרסמת רשומת הרשאה משלה ב-OAuth, ואנחנו קראנו את הרשומה הזו בשידור חי. מסלול ה-claude_desktop_config.json מהמדריך לשרתים מקומיים אינו רלוונטי כאן, כי השרת הזה רץ אצל GitHub ולא על ה-Mac שלכם. [8][7][5]
פקודה אחת בטרמינל. התיעוד של Claude Code משתמש בדיוק בשרת הזה כדוגמה לשרת מרוחק:
claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \ --header "Authorization: Bearer YOUR_GITHUB_PAT"
החליפו את YOUR_GITHUB_PAT בטוקן מדויק מהגדרות הטוקנים שלכם ב-GitHub. הפקודה שומרת את ההגדרה בלי לבדוק אותה, לכן הריצו אחריה /mcp: טוקן תקין מוצג כ-connected, וטוקן שגוי כ-failed. [9]
הוסיפו ל-~/.cursor/mcp.json עבור כל הפרויקטים, או ל-.cursor/mcp.json בתוך פרויקט אחד:
{
"mcpServers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer ${env:GITHUB_PAT}"
}
}
}
}מפתח ה-url הוא מה שמסמן את הרשומה כמרוחקת, ולכן אין שורת פקודה ואין קונטיינר להוריד. הגדירו את GITHUB_PAT בסביבת ה-shell לפני שאתם מפעילים את Cursor, או הדביקו את הטוקן עצמו במקום ההפניה למשתנה הסביבה. Cursor קורא את הקובץ מחדש אחרי הפעלה מחדש. [10]
בלי קובץ JSON ובלי טרמינל. ב-Routines: Settings, אחר כך Assistant, אחר כך Connections, אחר כך Add MCP Server. הטופס כבר נפתח במצב URL (SSE/HTTP), וזה המצב שהשרת הזה צריך:
Name GitHub Server URL https://api.githubcopilot.com/mcp/ Bearer token YOUR_GITHUB_PAT
אל תיגעו במתג Command (stdio): השרת הזה הוא כתובת אינטרנט, לא פקודה. לחצו קודם על Test Connection, שפותח את החיבור ומדווח את מספר הכלים בלי לשמור כלום. [11]
בלי טרמינל
אם מעולם לא פתחתם את הטרמינל ואין לכם כוונה להתחיל, זה המסלול שלכם. Routines היא אפליקציית Mac שמחברת בשבילכם שרתי MCP: מדביקים כתובת אחת וטוקן אחד, והכלים של השרת זמינים ל-AI שלכם בצ׳אט ובשגרות מתוזמנות.
01
הורידו את האפליקציה מ-getroutines.ai/download, גררו אותה ל-Applications והתחברו.
02
פתחו את github.com/settings/personal-access-tokens וצרו טוקן מדויק. תנו לו גישת קריאה רק למאגרים שאתם רוצים שה-AI שלכם יראה, והעתיקו את הטוקן לפני שאתם סוגרים את הדף: GitHub מציג אותו פעם אחת בלבד.
03
לחצו על החשבון שלכם בתחתית סרגל הצד ובחרו Settings. פתחו את הקטע Assistant, אחר כך את הלשונית Connections, גללו אל MCP Servers ולחצו על Add MCP Server.
04
הטופס נפתח כבר במצב URL, וזה מה ששרת מתארח צריך, לכן אל תיגעו במתג Command (stdio). בשדה Name כתבו GitHub, ובשדה Server URL הדביקו את הכתובת https://api.githubcopilot.com/mcp/ ושמרו על הלוכסן בסופה.
05
הכניסו את הטוקן לשדה Bearer token. לחצו Test Connection: Routines פותחת את החיבור ומדווחת כמה כלים היא מצאה, ארבעים ושבעה עבור השרת הזה. אחר כך לחצו Add Server.
06
הכלים עובדים בצ׳אט מיד. כדי לתת לשגרה מתוזמנת להשתמש בהם, פתחו את השגרה, מצאו את הכרטיס Tools & connections וסמנו את השרת תחת Apps.
רעיונות לשגרות
אחרי שהשרת מחובר, שגרה מתוזמנת יכולה להשתמש בכלים שלו גם כשאתם לא מול המסך. העתיקו פרומפט, הדביקו אותו ב-Routines ובחרו שעה. הפרומפטים כתובים באנגלית בכוונה, מדביקים אותם בדיוק כפי שהם.
Every Monday at 9:00, list the open pull requests in my main repository, note how long each one has been waiting and who is due to review it, and save the list as pr-digest.md.
Every Friday at 17:00, read the commits merged into main this week in my main repository, group them into features, fixes and chores, and write a draft release note as release-draft.md.
On the first Monday of each month at 10:00, search my repository for open issues with no activity in 60 days, summarize each one in a line, and save the list as stale-issues.md so I can close or revive them.
פתרון תקלות
שגיאות אמיתיות שנלכדו בריצת האימות, מודפסות בדיוק כפי שהשרת החזיר אותן.
מה רואים
HTTP/2 401 content-type: text/plain; charset=utf-8 www-authenticate: Bearer error="invalid_request", error_description="No access token was provided in this request", resource_metadata="https://api.githubcopilot.com/.well-known/oauth-protected-resource/mcp/" bad request: missing required Authorization header
הפתרון
נקודת הקצה אינה מקבלת שום פנייה אנונימית. הלקוח שלכם חייב לשלוח כותרת Authorization שנושאת טוקן של GitHub: זה שדה ה-Bearer token ב-Routines, הדגל --header ב-Claude Code ובלוק ה-headers ב-Cursor. לקוחות שתומכים ב-OAuth, ובהם Claude Desktop, משיגים את הכותרת בשבילכם אחרי ההתחברות, והכתובת שב-resource_metadata בתשובה הזו היא הרשומה שהם קוראים כדי להתחיל אותה.
מה רואים
HTTP/2 401 content-type: text/plain; charset=utf-8 www-authenticate: Bearer error="invalid_token", error_description="Token is not authorized", resource_metadata="https://api.githubcopilot.com/.well-known/oauth-protected-resource/mcp/" unauthorized: AuthenticateToken authentication failed
הפתרון
ייצרנו את השגיאה הזו בכוונה עם טוקן שנראה נכון ואינו נכון. טוקנים שפג תוקפם, טוקנים שבוטלו ורווח מיותר שנדבק לשדה מגיעים כולם לכאן. צרו טוקן מדויק חדש, הדביקו אותו שוב, ובדקו את החיבור לפני השמירה.
מה רואים
failed to resolve git reference: failed to get repository info: GET https://api.github.com/repos/openai/internal-private-does-not-exist: 404 Not Found []
הפתרון
מאגר שהטוקן שלכם אינו רואה ומאגר שאינו קיים עונים בדיוק אותו דבר, וזו החלטה מכוונת של GitHub. בדקו קודם את שם הבעלים ואת שם המאגר, ואז ודאו שהטוקן המדויק שלכם באמת מונה את המאגר הזה: טוקן שהוגבל לשלושה מאגרים עיוור לרביעי.
מה רואים
MCP error -32602: unknown tool "list_repos"
הפתרון
אין list_repos בשרת הזה. גילוי מאגרים נעשה עם search_repositories, וכל השמות האמיתיים נמצאים בטבלה למעלה. כשאתם רואים את זה, ציינו את שם הכלי בבקשה שלכם: בקשו search_repositories ולא רשימה של מאגרים.
מה רואים
MCP error -32602: unknown tool "create_repository"
הפתרון
שלחו את הכותרת X-MCP-Readonly: true וכלי הכתיבה לא רק נדחים, הם נעדרים: פתחנו חיבור שני עם הכותרת הזו ו-tools/list החזיר 28 כלים במקום 47, וביניהם חסר create_repository. לקוחות שמאפשרים להגדיר כותרות מותאמות, ובהם Cursor ו-Claude Code, יכולים לעשות זאת היום. טוקן מדויק עם הרשאות קריאה בלבד מוסיף שכבת הגנה שנייה.
שאלות נפוצות
זהו שרת ה-Model Context Protocol של GitHub עצמה. אחרי החיבור, עוזר AI יכול לחפש מאגרים, לקרוא קבצים, לקרוא issues ובקשות משיכה, ואם תרשו לו, גם לכתוב. הוא כתוב ב-Go ונמצא במאגר github/github-mcp-server. אפשר לכוון לקוח אל העותק ש-GitHub מארחת, וזה מה שאומת בעמוד הזה, או להריץ את אימג׳ הקונטיינר בעצמכם. [1][4]
השרת המתארח ענה ל-tools/list עם 47 כלים ביום הריצה הזו: חיפוש (search_repositories, search_code, search_issues, search_pull_requests, search_commits, search_users), קריאה (get_file_contents, list_commits, get_commit, list_branches, list_tags, list_releases, issue_read, pull_request_read ועוד) וכתיבה (issue_write, create_pull_request, push_files, create_or_update_file, merge_pull_request והשאר). הטבלה למעלה היא התשובה הזו, מילה במילה.
לא. GitHub מארחת את השרת בכתובת https://api.githubcopilot.com/mcp/, וכל ההגדרות בעמוד הזה מכוונות לשם, ולכן אף אחת מהן אינה מתקינה דבר. אימג׳ הקונטיינר ghcr.io/github/github-mcp-server הוא המסלול הנתמך השני, למי שרוצה שהשרת ירוץ על המחשב שלו. [4]
לא, וזה מבלבל כי שם החבילה הזה עדיין מופיע במדריכים ישנים. היא נעצרה בגרסה 2025.4.8 ונושאת היום את הודעת ההוצאה משימוש של npm, Package no longer supported. השרת המתוחזק הוא github/github-mcp-server, שמפורסם על ידי GitHub עצמה, והוא זה שהורץ בעמוד הזה. [6][1]
כן, בשתי דרכים, ואת אחת מהן בדקנו. שלחו את הכותרת X-MCP-Readonly: true וכלי הכתיבה נעלמים מהרשימה: החיבור שלנו במצב קריאה בלבד ספר 28 כלים במקום 47. הדרך השנייה היא אישור הגישה עצמו, כי טוקן גישה אישי מדויק עם הרשאות קריאה בלבד אינו יכול לכתוב, לא משנה אילו כלים מוצעים.
טוקן גישה אישי של GitHub, או התחברות OAuth בלקוחות שתומכים בה. נקודת הקצה מפרסמת רשומת הרשאה משלה, שמציינת את github.com/login/oauth כשרת ההרשאה ומונה את ההרשאות שהיא מקבלת, ובהן repo ו-read:org. תנו לטוקן את המינימום הדרוש: טוקן מדויק אפשר להגביל למאגרים מסוימים בשמם. [5][4]
מקורות
כל מה שבעמוד הזה שלא ראינו בעצמנו בריצה מקושר כאן, עם התאריך שבו קראנו אותו. לגבי השאר, הריצה עצמה היא הקבלה.
[1]
31,908 stars, last push 2026-07-31, owner github (Organization), language Go, license MIT at access time.
[2]
Latest release v1.8.0, published 2026-07-30, with 6,002 downloads counted across its nine binary assets.
[3]
The MIT License text, Copyright (c) 2025 GitHub. We read the file, not the badge.
[4]
Documents both run paths: the hosted endpoint https://api.githubcopilot.com/mcp/ and the container image ghcr.io/github/github-mcp-server.
[5]
Names github.com/login/oauth as the authorization server and lists the scopes it accepts, repo and read:org among them.
[6]
Stops at version 2025.4.8 and carries the deprecation notice "Package no longer supported."
[7]
The claude_desktop_config.json route, which covers servers running on your Mac rather than hosted ones.
[8]
Settings, then Connectors, then Add custom connector: the Claude Desktop path for a hosted server.
[9]
The claude mcp add --transport http syntax, with this server as the worked example.
[10]
The mcp.json shape for a remote server: a url key plus a headers object.
[11]
How Routines runs one-click OAuth connectors and any MCP server.
העמוד הזה מתאר את GitHub כפי שהתנהג בריצה מתוארכת אחת על Mac אחד. גרסאות משתנות: אם משהו כאן כבר לא תואם למה שאתם רואים, תאריך הלכידה בראש העמוד אומר בן כמה הצילום.
מאחורי המדריך הזה
Routines, האפליקציה שמאחורי המדריך הזה, מחברת שרתי MCP כמו זה בלי טרמינל: כך עובדים המחברים. הפתקים שלכם נשארים קובצי markdown על ה-Mac שלכם, ואין חשבון ענן לשלם. להורדת Routines