DevBot
README.md
# DevBot — GitHub + LinkedIn AI Assistant
Gemini 2.5 Flash chatbot with MCP tools for GitHub and LinkedIn, served via Flask.
## Project structure
```
devbot/
├── server.py # MCP server — GitHub + LinkedIn tools
├── client.py # Flask app + Gemini + MCP client
├── index.html # Chat UI
├── .env # API keys
└── requirements.txt
```
## Setup
```bash
pip install -r requirements.txt
```
Fill in `.env` (see sections below for each key).
```bash
python client.py
```
Open http://localhost:5000
---
## Getting API keys
### 1. Gemini API key
- Go to https://aistudio.google.com
- Click "Get API key" → create one
### 2. GitHub token
- Go to https://github.com/settings/tokens
- Generate new token → Classic
- Scopes to enable: `repo` (all), `delete_repo`
- Copy the token into `.env` as `GITHUB_TOKEN`
- Also set `GITHUB_USERNAME` to your GitHub username
### 3. LinkedIn Access Token (manual OAuth)
LinkedIn doesn't give tokens easily — here's the fastest manual method:
**Step 1 — Create a LinkedIn App**
1. Go to https://www.linkedin.com/developers/apps/new
2. Fill in app name, link it to a LinkedIn Page (create a dummy one if needed)
3. Under "Auth" tab → add redirect URL: `https://localhost`
4. Under "Products" → request access to "Share on LinkedIn" and "Sign In with LinkedIn using OpenID Connect"
**Step 2 — Get your auth code**
Build this URL and open it in your browser (replace CLIENT_ID):
```
https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=https://localhost&scope=openid%20profile%20w_member_social%20r_liteprofile
```
After approving, you'll be redirected to `https://localhost/?code=SOME_CODE` — copy the `code` value.
**Step 3 — Exchange code for token**
```bash
curl -X POST https://www.linkedin.com/oauth/v2/accessToken \
-d grant_type=authorization_code \
-d code=YOUR_CODE \
-d redirect_uri=https://localhost \
-d client_id=YOUR_CLIENT_ID \
-d client_secret=YOUR_CLIENT_SECRET
```
You'll get back an `access_token` — paste it into `.env` as `LINKEDIN_ACCESS_TOKEN`.
Token is valid for 60 days.
---
## Available tools
| Tool | What it does |
|---|---|
| `gh_list_repos` | List all your repos |
| `gh_get_repo` | Get details of a repo |
| `gh_create_repo` | Create a new repo |
| `gh_delete_repo` | Delete a repo |
| `gh_list_issues` | List issues in a repo |
| `gh_create_issue` | Open a new issue |
| `gh_list_branches` | List branches |
| `li_get_profile` | Get your LinkedIn profile |
| `li_post_content` | Post to LinkedIn |
| `li_edit_bio` | Update your headline |
| `li_edit_about` | Update your About section |
## Example prompts
- "List all my GitHub repos"
- "Create a private repo called ml-experiments"
- "Show open issues in my portfolio repo"
- "Post on LinkedIn: Just shipped my MCP chatbot!"
- "Update my LinkedIn headline to: AI Engineer | LLMs | n8n"This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues