はじめに
本記事では、簡単なPythonプロジェクトを作成してGitHubで管理し、Issueを登録するまでの手順を整理します。そのうえで、登録したIssueがGitHub MCP Server経由でCodexから取得できることを確認できる状態を目指します。
最終的に作りたいのは、次のような状態です。
ローカルPC
│
│ git push
▼
GitHub Repository
│
├─ main.py
├─ README.md
│
└─ Issues
└─ #1 「掛け算機能を追加する」
この状態を作ったあと、GitHub MCP Serverを接続したCodexに「Issue #1 の内容を教えて」と依頼すると、GitHub MCP Server経由でIssueを取得できる、という流れを体験します。
これからGitHubでのプロジェクト管理を学ぶ方や、MCPを使ってLLMから外部サービスを操作する感覚をつかみたい方の参考になれば幸いです。
補足: 本記事の内容は執筆時点の情報にもとづいています。GitHubやCodex、GitHub MCP Serverは更新が速いため、最新の手順は各公式ドキュメントで確認してください。
この記事のゴール
本記事では、次の2段階を通じて「LLMがMCP ServerのToolを使う」意味を体験します。
- ブラウザからIssueを手動登録する(GitHubの基本操作)
- Codex + GitHub MCP ServerからIssueを読み取る(MCPの役割分担を確認)
最初はシンプルに、Pythonプロジェクトを作ってGitHubに登録し、Issueを1件登録するところから始めます。
参考記事
MCP Serverの準備やCodexとの連携方法については、以下の記事で詳しく解説しています。あわせてご参照ください。
【第2回】GitHub公式MCP ServerをCodexから使ってみる 〜公開MCP Serverの基本〜
全体像
今回作成するプロジェクトの構成はとてもシンプルです。
python-codex-sample/
│
├─ main.py
└─ README.md
このプロジェクトをGitHubに登録し、そこにIssueを追加していきます。
1. Pythonプロジェクトを作成する
まずはPowerShellを開きます。作業フォルダへ移動します。
cd C:\work
プロジェクトフォルダを作成して、その中に移動します。
mkdir python-codex-sample
cd python-codex-sample
2. Pythonプログラムを作成する
main.py を作成します。今回は2つの数値を加算するだけの簡単なプログラムです。
def add(a, b):
return a + b
def main():
x = 10
y = 20
result = add(x, y)
print(f"{x} + {y} = {result}")
if __name__ == "__main__":
main()
実行してみます。
python main.py
次のように表示されれば成功です。
10 + 20 = 30
これで簡単なPythonプロジェクトができました。
3. README.mdを作成する
プロジェクトの説明用に README.md を作成します。
# Python GitHub Sample
GitHubおよびGitHub MCP Serverの学習用Pythonプロジェクトです。
## 機能
現在は以下の機能があります。
- 2つの数値を加算する
- 計算結果を表示する
## 実行方法
```bash
python main.py
```
プロジェクト構成は次のようになります。
python-codex-sample/
│
├─ main.py
└─ README.md
4. Gitリポジトリを作成する
プロジェクトフォルダで実行します。
git init
現在の状態を確認します。
git status
例えば次のように表示されます。
Untracked files:
README.md
main.py
ファイルをGitの管理対象にします。
git add .
コミットします。
git commit -m "Initial commit"
5. mainブランチに変更する
ブランチ名を main にします。
git branch -M main
確認します。
git branch
次のように表示されればOKです。
* main
6. GitHubでリポジトリを作成する
GitHubにログインして、新しいRepositoryを作成します。設定は例えば次のようにします。
| 項目 | 設定例 |
|---|---|
| Repository name | python-codex-sample |
| Description | GitHub MCP Server learning sample |
| Public / Private | どちらでも可 |
今回はすでにローカルで README.md を作成しているため、GitHub側では Add a README file にチェックを入れないほうが分かりやすいです。空のRepositoryを作成します。
7. ローカルとGitHubを接続する
GitHub Repositoryを作成すると、例えば次のようなURLになります。
https://github.com/USERNAME/python-codex-sample.git
ローカルPCからGitHub Repositoryを登録します。USERNAME は自分のGitHubユーザー名に置き換えてください。
git remote add origin https://github.com/USERNAME/python-codex-sample.git
登録できたか確認します。
git remote -v
例えば次のように表示されればOKです。
origin https://github.com/USERNAME/python-codex-sample.git (fetch)
origin https://github.com/USERNAME/python-codex-sample.git (push)
8. GitHubへPushする
次を実行します。
git push -u origin main
GitHubのRepositoryをブラウザで開きます。
python-codex-sample
│
├─ README.md
└─ main.py
上記が表示されれば成功です。
補足: GitHubでは通常、ローカルの
mainブランチをリモートのorigin/mainに送信する場合にgit push origin mainを使います。-u(--set-upstream)を付けておくと、次回以降はgit pushだけで済みます。
9. GitHub Issuesを開く
GitHub Repositoryを開き、上部タブの Code / Issues / Pull requests / Actions ... の中から、Issues をクリックします。
続いて、New issue をクリックします。
GitHub公式ドキュメントでも、Repository → Issues → New issue の順でIssueを作成する手順になっています。
10. Issueを登録する
今回は、現在のプログラムに「掛け算機能を追加する」というIssueを登録してみます。
Title
掛け算機能を追加する
Description
## 概要
現在は加算処理のみ実装されています。
掛け算を行う機能を追加してください。
## 実装内容
main.py に以下の関数を追加する。
```python
def multiply(a, b):
return a * b
```
## 完了条件
以下の処理が実行できること。
- `multiply(10, 20)` の実行結果が `200` になること
GitHubではIssueのタイトル・本文のほか、必要に応じてLabel、Assignee、Milestoneなども設定できます。
11. Issueが登録されたことを確認する
Issue一覧を見ると、次のように表示されます。
この #1 がIssue番号です。
ここまででGitHubは次の状態になります。
GitHub
python-codex-sample
│
├─ main.py
├─ README.md
│
└─ Issues
└─ #1 掛け算機能を追加する
GitHub上に、ソースコードと開発タスク(Issue)の両方が存在する状態になりました。
12. GitHub MCP Serverとの関係
ここでGitHub MCP Serverを使うと、構成は次のようになります。
Codex
│
│ MCP
▼
GitHub MCP Server
│
├─ Issueを検索するツール
├─ Issueを取得するツール
├─ Pull Requestを取得するツール
└─ Repository情報を取得するツール
│
▼
GitHub
└─ python-codex-sample
└─ Issue #1「掛け算機能を追加する」
つまり、今回作成したIssueが、MCP Serverから取得する実データになります。
13. CodexからIssueを取得する
GitHub MCP ServerをCodexに接続した後で、Codexに例えば次のように依頼します。
python-codex-sample のIssue #1 の内容を教えて
すると、イメージとしては次のような処理が行われます。
ユーザー
│
│ 「Issue #1を教えて」
▼
Codex
│
│ MCP Tool Call
▼
GitHub MCP Server
│
│ GitHub API
▼
GitHub
Issue #1 掛け算機能を追加する
重要なのはここです。
Codex
↓ MCPのToolを呼ぶ
GitHub MCP Server
↓ GitHub APIを呼ぶ
GitHub
↓ Issue情報を返す
つまり、Codex自身がGitHub APIの細かなアクセス方法を実装するのではなく、GitHubへの具体的なアクセス処理はGitHub MCP Serverが担当するというMCPの役割分担を、この小さなプロジェクトで確認できます。
14. Issueを増やして「検索」を体験する
さらに分かりやすくするなら、Issueを3件くらい登録すると、MCPの「検索」がより分かりやすくなります。
#1 掛け算機能を追加する
#2 割り算機能を追加する
#3 計算結果の入力チェックを追加する
そのうえでCodexに、次のように依頼します。
このリポジトリの未解決Issueを一覧表示して
あるいは、
「割り算」に関係するIssueを探して
すると、次のような形になります。
Codex
│
│ Issue検索Tool
▼
GitHub MCP Server
│
▼
GitHub
└─ Issues
├─ #1 掛け算機能
├─ #2 割り算機能 ← Hit
└─ #3 入力チェック
こうすると、「LLMがMCP ServerのToolを使う」意味がかなり見えやすくなります。
補足: GitHub CLIを使う場合は、Issueをコマンドから
gh issue create --title ... --body ...で作成したり、gh issue listで一覧取得することもできます。ただし今回の教材用途なら、まずはブラウザからIssueを手動登録するのが分かりやすいです。
まとめ
本記事では、PythonプロジェクトをGitHubで管理し、Issueを登録するまでの流れを解説しました。
| ステップ | ポイント |
|---|---|
| プロジェクト作成 |
main.py と README.md を用意する |
| Git管理 |
git init → git add → git commit → git branch -M main
|
| GitHub接続 | 空のRepositoryを作り、git remote add → git push
|
| Issue登録 | ブラウザから Issues → New issue で手動登録する |
| MCP連携 | 登録したIssueがGitHub MCP Server経由でCodexから取得できる |
理解の順序としては、
- まずはブラウザからIssueを手動登録する
- 次の演習でCodex + GitHub MCP ServerからIssueを読み取る
という2段階に分けるのが一番分かりやすい構成です。
小さなプロジェクトでも、「ソースコード」と「Issue(開発タスク)」の両方をGitHubで管理し、そこにMCPを重ねることで、LLMがToolを通じて外部サービスを操作する感覚をつかめます。ぜひ手を動かして体験してみてください。

