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

pip install -r requirements.txt

Fill in .env (see sections below for each key).

python client.py

Open http://localhost:5000

Getting API keys

1. Gemini API key

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

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"

MCP Server · Populars

MCP Server · New

    jackccrawford

    Geniuz

    Your AI remembers now. Geniuz stores everything in a local database locally on Mac, Windows, Linux, Raspberry Pi. No cloud. No account. No API keys. Nothing leaves your machine. It's open source; you can read every line of code.

    Community jackccrawford
    ggui-ai

    ggui

    The universal interface layer between AI agents and humans. Generate rich UIs on demand via MCP.

    Community ggui-ai
    aanno

    CocoIndex Code MCP Server

    An RAG for code development, implemented as MCP server with cocoindex

    Community aanno
    timescale

    Tiger Linear MCP Server

    A wrapper around the Linear API for internal LLMs

    Community timescale
    choplin

    MCP Gemini CLI

    MCP Server

    Community choplin