flin-google-keyword-planner-mcp
Provides tools for generating keyword ideas using Google Ads Keyword Planner, supporting seed strategies from keywords, URLs, sites, and historical metrics.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@flin-google-keyword-planner-mcpgenerate keyword ideas for 'organic coffee beans'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
flin-google-keyword-planner-mcp
MCP server for Google Ads Keyword Planner ideas.
This server exposes focused read-only tools so an LLM can clearly choose the right seed strategy.
Exposed MCP tools
keyword_ideas_from_keywordskeyword_ideas_from_urlkeyword_ideas_from_keyword_and_urlkeyword_ideas_from_sitekeyword_ideas_historical
Related MCP server: google-ads-mcp-server
Tool overview
1) keyword_ideas_from_keywords
Generate ideas from a keyword list (KeywordSeed).
Required:
keywords
2) keyword_ideas_from_url
Generate ideas from a page URL (UrlSeed).
Required:
url
3) keyword_ideas_from_keyword_and_url
Generate ideas from keyword list + URL (KeywordAndUrlSeed).
Required:
keywordsurl
4) keyword_ideas_from_site
Generate ideas from a full site/domain (SiteSeed).
Required:
site_url
5) keyword_ideas_historical
Generate ideas from keywords and constrain historical metrics to a year-month range.
Required:
keywordsstart_yearstart_monthend_yearend_month
Historical option:
include_average_cpc(defaultfalse)
Common optional parameters (all tools)
customer_idlanguage_id(default1000)location_ids(default2840= US)network(GOOGLE_SEARCHorGOOGLE_SEARCH_AND_PARTNERS)include_adult_keywords(defaultfalse)limit(default50, max1000)page_tokenkeyword_annotation(currently:KEYWORD_CONCEPT)aggregate_metric_types(currently:DEVICE)login_customer_id
Requirements
Python 3.10+
Google Ads API credentials:
GOOGLE_ADS_DEVELOPER_TOKENGOOGLE_ADS_CLIENT_IDGOOGLE_ADS_CLIENT_SECRETGOOGLE_ADS_REFRESH_TOKEN
Optional:
GOOGLE_ADS_LOGIN_CUSTOMER_IDGOOGLE_ADS_CUSTOMER_ID(default customer if nocustomer_idargument is passed)GOOGLE_ADS_USE_PROTO_PLUS(trueby default)
Quickstart (local)
uv sync --extra dev
cp .env.example .env
# Fill .env with real credentials
uv run flin-google-keyword-planner-mcpClaude integration
Option A: Published package (uvx)
{
"mcpServers": {
"flin-google-keyword-planner-mcp": {
"command": "uvx",
"args": ["flin-google-keyword-planner-mcp@latest"],
"env": {
"GOOGLE_ADS_DEVELOPER_TOKEN": "REPLACE_ME",
"GOOGLE_ADS_CLIENT_ID": "REPLACE_ME",
"GOOGLE_ADS_CLIENT_SECRET": "REPLACE_ME",
"GOOGLE_ADS_REFRESH_TOKEN": "REPLACE_ME",
"GOOGLE_ADS_CUSTOMER_ID": "1234567890",
"GOOGLE_ADS_LOGIN_CUSTOMER_ID": "1234567890",
"GOOGLE_ADS_USE_PROTO_PLUS": "true"
}
}
}
}Option B: Local development checkout
{
"mcpServers": {
"flin-google-keyword-planner-mcp-local": {
"command": "uv",
"args": [
"run",
"--directory",
"/ABSOLUTE/PATH/TO/flin-google-keyword-planner-mcp",
"flin-google-keyword-planner-mcp"
],
"env": {
"GOOGLE_ADS_DEVELOPER_TOKEN": "REPLACE_ME",
"GOOGLE_ADS_CLIENT_ID": "REPLACE_ME",
"GOOGLE_ADS_CLIENT_SECRET": "REPLACE_ME",
"GOOGLE_ADS_REFRESH_TOKEN": "REPLACE_ME",
"GOOGLE_ADS_CUSTOMER_ID": "1234567890",
"GOOGLE_ADS_LOGIN_CUSTOMER_ID": "1234567890",
"GOOGLE_ADS_USE_PROTO_PLUS": "true"
}
}
}
}Restart Claude Desktop after config changes.
Security
Never commit real credentials to git.
.envand.env.*are gitignored; only.env.exampleis tracked.Keep secrets in environment variables or secret managers.
Rotate credentials immediately if accidentally exposed.
CI and release workflows run secret scanning with OSS
gitleaks(noGITLEAKS_LICENSEsecret required).
Testing
uv sync --extra dev
python3 -m pytest
python3 -m compileall src
uv buildRelease automation (GitHub + PyPI)
CI workflow:
.github/workflows/ci.ymlRelease workflow:
.github/workflows/release.ymlTag push (
v*) triggers:
tests + compile + build +
twine checkpublish to PyPI via Trusted Publishing (OIDC)
GitHub Release creation with built artifacts
PyPI Trusted Publishing (one-time)
In the PyPI project flin-google-keyword-planner-mcp, add a Trusted Publisher:
Owner:
flin-agencyRepository:
flin-google-keyword-planner-mcpWorkflow:
release.ymlEnvironment:
pypi
Release steps
# 1) bump version in pyproject.toml + src/flin_google_ads_mcp/__init__.py
# 2) run checks
python3 -m pytest
python3 -m compileall src
uv build
# 3) release
git add -A
git commit -m "release: vX.Y.Z"
git tag vX.Y.Z
git push origin main --tagsMaintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/flin-agency/flin-google-keyword-planner-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server