アプリSEO AI
Google 広告キーワード プランナーとの統合による SEO 自動化と AI を活用した最適化のためのアプリケーション。
特徴
Google Ads API を使用したキーワード調査
SERP分析
競合分析
SEOの推奨事項
AIアシスタント向けMCP(モデルコンテキストプロトコル)統合
Related MCP server: Search Intent MCP
前提条件
Node.js (v14以上)
npmまたはyarn
API アクセス権を持つ Google 広告アカウント
Google Ads API が有効になっている Google Cloud Platform プロジェクト
設定
1. リポジトリをクローンする
git clone https://github.com/ccnn2509/app-seo-ai.git
cd app-seo-ai2. 依存関係をインストールする
npm install3. 環境変数を設定する
サンプル環境ファイルをコピーします。
cp .env.example .env.envファイルを編集し、Google Ads API の認証情報を入力します。
# Server Configuration
PORT=3000
NODE_ENV=development
# Google Ads API Configuration
GOOGLE_ADS_DEVELOPER_TOKEN=your_developer_token
GOOGLE_ADS_CLIENT_ID=your_client_id
GOOGLE_ADS_CLIENT_SECRET=your_client_secret
GOOGLE_ADS_REFRESH_TOKEN=your_refresh_token
GOOGLE_ADS_LOGIN_CUSTOMER_ID=your_customer_id_without_dashes
# SERP API Configuration (optional)
SERP_API_KEY=your_serp_api_key4. Google Ads APIのリフレッシュトークンを取得する
リフレッシュ トークンを取得するには、次のコマンドを実行します。
npm run get-tokenブラウザが開き、OAuth2認証プロセスが案内されます。リフレッシュトークンは自動的に.envファイルに保存されます。
5. サーバーを起動する
開発の場合:
npm run dev生産の場合:
npm startサーバーは、 .envファイルで指定されたポート (デフォルト: 3000) で起動します。
APIドキュメント
サーバーが実行中の場合、API ドキュメントは/api-docsで入手できます。
http://localhost:3000/api-docsMCP統合
このプロジェクトにはMCP(モデルコンテキストプロトコル)統合が含まれており、AIアシスタントがAPIを利用できるようになります。MCPの設定はmcp.jsonファイルにあります。
Smithery でこれを使用するには:
鍛冶屋に行く
新しいMCPサーバーを作成する
app-seo-aiリポジトリを選択するサーバー設定を構成する
サーバーを展開する
利用可能なMCPツール
research_keywords- 特定のトピックまたはシードキーワードに関連するキーワードを検索しますanalyze_serp- 指定されたクエリの SERP (検索エンジン結果ページ) を分析するanalyze_competitors- 特定のキーワードまたはドメインの競合他社を分析する_health- ヘルスチェックエンドポイント
使用例
研究キーワード
// Example request to research keywords
fetch('http://localhost:3000/api/keywords/ideas?keyword=seo%20tools&language=en')
.then(response => response.json())
.then(data => console.log(data));SERPを分析する
// Example request to analyze SERP
fetch('http://localhost:3000/api/serp/analyze?query=best%20seo%20tools&location=United%20States')
.then(response => response.json())
.then(data => console.log(data));競合他社を分析する
// Example request to analyze competitors
fetch('http://localhost:3000/api/competitors/analyze?domain=example.com')
.then(response => response.json())
.then(data => console.log(data));ライセンス
マサチューセッツ工科大学