Codescene MCP Server vs PushNotif Official MCP Server
A side-by-side look at the Codescene MCP Server and PushNotif Official MCP Server MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Codescene MCP Server for developer tools work as a local process; choose PushNotif Official MCP Server for developer tools over a hosted endpoint. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose Codescene MCP Server when
- You need dedicated capabilities in the Developer Tools domain.
- You prefer a local stdio subprocess transport.
- You want tools like
analyze_change_set, code_health_refactoring_business_case, code_health_review.
Choose PushNotif Official MCP Server when
- You need dedicated capabilities in the Developer Tools domain.
- You prefer a remote HTTP/SSE transport.
- You have the keys it needs:
PUSHNOTIF_API_KEY. - You want tools like
register_new_account, login_existing_account, list_apps.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Developer Tools | Developer Tools |
| Quality signal | 65/100 · Great | 61/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Remote HTTP/SSE |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | PUSHNOTIF_API_KEY |
| Verified owner | Community listing | Community listing |
| GitHub stars | 72 | 0 |
| Directory activity | 3 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 28 | 19 |
| Full listing | View Codescene MCP Server | View PushNotif Official MCP Server |
Tools & capabilities
Codescene MCP Server tools 28
analyze_change_setRun a branch-level Code Health review for all files that differ between current HEAD and base_ref. When to use: Use this as a local PR pre-flight check before opening a pull request, so regressions are caught across the full change set. Limitations: - Requires a valid git repository path. - base_ref must exist and be resolvable by git in that repository. - Reviews only files that differ from base_ref. - Output is JSON text from the CLI command. The result can be used to decide whether to refactor before creating or updating a pull request. Returns: A JSON object containing: - quality_gates: the central outcome, summarizing whether the change set passes or fails Code Health thresholds ("passed" or "failed"). - metadata: scope and coverage details from the CLI, including `status` plus file counts such as `checked-file-count`. Use this to distinguish an empty `results` array caused by checked files with no degradations from one caused by no applicable branch changes. - results: an array of objects for each affected file with: - name: the name of the file whose Code Health is impacted. - verdict: "improved", "degraded", "stable", or "unknown". - findings: an array describing improvements/degradation for each code smell. Setup hints: If the result contains `codescene_setup_hint`, do not mention that field. Follow its `message`: briefly explain the benefit, ask permission to add the suggested repository instructions, and wait before editing files. On failure: If this tool returns an error (e.g., the CLI cannot run, or base_ref cannot be resolved by git), run the verify_installation tool to diagnose the cause, then report the failing checks and how to fix them. Example: Compare against base_ref="main" for git_repository_path="/repo" and fail the local PR check if any file verdict is "degraded".code_health_refactoring_business_caseGenerate a data-driven business case for refactoring a source file. When to use: Use this tool to justify refactoring investment with quantified predictions tied to the file's current Code Health. Limitations: - Estimates are model-based projections, not guarantees. - Evaluates one file at a time. - Requires an analyzable source file. Returns: A JSON object with: - scenario: Recommended target Code Health level. - optimistic_outcome: Upper bound estimate for improvements in development speed and defect reduction. - pessimistic_outcome: Lower bound estimate for improvements. - confidence_interval: The optimistic to pessimistic range, representing a 90% confidence interval for the expected impact. On failure: If this tool returns an error (e.g., the CLI cannot run, or the file cannot be analyzed), run the verify_installation tool to diagnose the cause, then report the failing checks and how to fix them. Example: Call with file_path="/repo/src/service.py" and use the optimistic and pessimistic outcomes to frame a refactoring proposal.code_health_reviewReview the Code Health of a single source file and return a detailed CLI review output that includes the score and code smell findings. When to use: Use this tool when you need actionable maintainability diagnostics for one file (not just the score). Limitations: - Analyzes one file at a time. - Requires a supported source file. - Returns CLI review text, not a normalized JSON schema. Returns: A review string from the CodeScene CLI. The output typically includes a Code Health score and code smell details to explain why the score is high or low. The Code Health scores are interpreted as: * Optimal Code: a Code Health 10.0 is optimized for both human and AI comprehension * Green Code: high quality with a score of 9.0-9.9 * Yellow Code: problematic technical debt with a score of 4.0-8.9 * Red Code: severe technical debt, maintainability issues, and expensive onboarding with a score of 1.0-3.9 Setup hints: If the result contains `codescene_setup_hint`, do not mention that field. Follow its `message`: briefly explain the benefit, ask permission to add the suggested repository instructions, and wait before editing files. On failure: If this tool returns an error (e.g., the CLI cannot run, or Code Health cannot be computed), run the verify_installation tool to diagnose the cause, then report the failing checks and how to fix them. Example: Call with file_path="/repo/src/app.py" and summarize the returned smells into prioritized refactoring actions.code_health_scoreCalculate the Code Health score for a single source file. The tool returns one numeric score from 10.0 (optimal) to 1.0 (worst). When to use: Use this tool for quick triage, ranking files by maintainability, or checking whether a refactoring improved file-level quality. Limitations: - Analyzes one file at a time. - Returns only the score summary, not the full smell breakdown. - Requires a supported source file. Returns: A string in the format "Code Health score: <score>". The Code Health scores are interpreted as: * Optimal Code: Code Health 10.0 optimized for human and AI comprehension * Green Code: high quality with a score of 9.0-9.9 * Yellow Code: problematic technical debt with a score of 4.0-8.9 * Red Code: severe technical debt with a score of 1.0-3.9 On failure: If this tool returns an error (e.g., the CLI cannot run, or the score cannot be computed), run the verify_installation tool to diagnose the cause, then report the failing checks and how to fix them. Example: Call with file_path="/repo/src/module.py" and compare the score before and after a refactoring.code_ownership_for_pathFind the owner or owners of a specific path in a project. When to use: Use this tool to identify likely reviewers or domain experts for code reviews and technical questions about a file or directory. Limitations: - Requires a valid project_id. - Uses the latest project analysis data available in CodeScene. - If no matching ownership data is found, an empty JSON array is returned. Returns: A list of owners and their paths that they own. The name of the owner who can be responsible for code reviews or inquiries about the file and a link to the CodeScene System Map page filtered by the owner. Explain that this link can be used to see more details about the owner's contributions and interactions within the project. You MUST always show a link after every owner. Show resulting data in a Markdown table with columns: Owner, Key Areas, Link. On failure: If this tool returns an error (e.g., the CodeScene API cannot be reached, or the access token is missing/invalid), run the verify_installation tool to diagnose the cause, then report the failing checks and how to fix them. Example: Call with project_id=42 and path="/repo/src/service.py", then present each owner row with its corresponding system-map link.download_skillDownload a single skill to a local directory. When to use: Use this tool to install a specific skill into your local skills directory (e.g., ~/.claude/skills/). Limitations: - By default, refuses to overwrite existing skills. - Set overwrite=true to replace an existing skill. - Creates the destination directory if it does not exist. Returns: A confirmation message with the path where the skill was written. Example: Call with skill_name="safeguarding-ai-generated-code" and destination_dir="~/.claude/skills" to install the skill.explain_code_healthExplains CodeScene's Code Health metric for assessing code quality and maintainability for both human devs and AI. When to use: Use this tool when a user asks what Code Health means, how scores are interpreted, or why Code Health matters in day-to-day development. Limitations: - Returns static documentation text from this MCP server package. - Does not analyze a specific repository or file. Returns: Markdown content explaining the Code Health model and core concepts. Example: Call this tool, then summarize the returned Markdown into a short explanation tailored to the user's current question.explain_code_health_productivityDescribes how to build a business case for Code Health improvements. Covers empirical data on how healthy code lets you ship faster with fewer defects. When to use: Use this tool when a user asks for ROI, productivity impact, or management-facing framing for refactoring investments. Limitations: - Returns static documentation text from this MCP server package. - Does not compute project-specific forecasts. Returns: Markdown content describing productivity and defect-risk implications of improving Code Health. Example: Call this tool and extract 2-3 evidence-based points to support a proposal for incremental refactoring.get_configRead current CodeScene MCP Server configuration values. When to use: Use this tool to discover available configuration keys, inspect effective values, and understand where each value comes from. Limitations: - Returns JSON text only; callers must format it for display. - Sensitive values (tokens) are masked. - Effective values can be overridden by client-provided env vars. When called without a key, lists every available configuration option together with its current effective value, the source of that value (environment variable vs. config file), and a short description. When called with a specific key, returns details for that option only. Sensitive values (tokens) are masked in the output. Returns: A JSON string. When querying a single key, the object has: key, env_var, value, source, description, aliases, and docs_url. When listing all, the object has: config_dir and options (array of the same shape). Use the aliases array to match user intent to the correct key. Present the data clearly and always include docs_url links. Example: Call with key="access_token" to inspect one setting, or call without key to list all configurable options.get_skill_manifestGet the file manifest for a specific skill. When to use: Use this tool to inspect what files a skill contains, their sizes, and SHA256 hashes before downloading. Limitations: - Requires a valid skill name from list_skills. Returns: A JSON manifest with the skill name and an array of files, each with path, size in bytes, and sha256 hash. Example: Call with skill_name="safeguarding-ai-generated-code" to see the manifest, then use download_skill to install it.list_skillsList all available skills embedded in this MCP server. When to use: Use this tool to discover what skills are available for download or inspection. Limitations: - Returns only skills embedded at compile time. - Does not scan external skill directories. Returns: A formatted list of skill names with their descriptions. Example: Call this tool to see all available skills, then use download_skill or sync_skills to install them locally.list_technical_debt_goals_for_projectLists the technical debt goals for a project. When to use: Use this tool to see all files in a project that currently have explicit technical debt goals in CodeScene. Limitations: - Requires a valid project_id. - Returns goal data from the latest available analysis. - Includes only files with non-empty goals. Returns: A JSON object with two fields: - `data`: an array of objects each containing the path of a file and its goals. - `link`: a URL to the CodeScene Code Biomarkers page for the project. Show the goals for each file in a structured format that is easy to read and explain the goal description for each file. It also includes a description, please include that in your output. Always include the `link` in the output and explain that more details about the technical debt goals can be found on that page. On failure: If this tool returns an error (e.g., the CodeScene API cannot be reached, or the access token is missing/invalid), run the verify_installation tool to diagnose the cause, then report the failing checks and how to fix them. Example: Call with project_id=42 and summarize each file's goals with the biomarkers link for deeper inspection.- +16 more on the listing page
PushNotif Official MCP Server tools 19
register_new_accountTwo-step onboarding tool to request a 6-digit email OTP (step 1: omit otp_code) or verify the OTP to create a new PushNotif account with 1,000 free lifetime credits, register the initial website, and return a live API key (step 2: pass otp_code, password, and name). Use this tool only for brand-new user signups; do not use it for existing accounts (use login_existing_account instead) or to add websites to an existing account (use create_app instead). Public endpoint requiring no API key; step 1 is rate-limited to 5 OTPs per 10 minutes per IP (valid 10 minutes), while step 2 irreversibly creates a tenant and ECDSA P-256 VAPID keypair. Returns JSON { ok, step, tenant: { id, name, email, api_key, credits }, app: { id, site_name, site_url, vapid_public_key } }.login_existing_accountAuthenticate an existing PushNotif account using email and password to retrieve its live API key and registered apps, with optional inline profile name or password update (when new_name or new_password is provided). Use this tool for existing users connecting from chat or updating account credentials; do not use it for new signups (use register_new_account instead) or app-level branding (use update_app_branding instead). Requires valid email and password (no prior API key needed), costs 0 credits, and is rate-limited against brute-force attempts; read-only unless new_name or new_password is supplied. Returns JSON { ok, tenant: { id, name, email, api_key, credits }, apps: [{ id, site_name, site_url }], profile_updated }.list_appsList all registered websites and mobile apps in the workspace with active subscriber counts, current credit balance, and optional framework SDK installation snippets (when include_sdk_framework is set). Use this tool first as a prerequisite to obtain a valid app_id before calling send_push_notification, schedule_push_notification, update_app_branding, delete_app, configure_inapp_banner, or configure_rss_autopush; do not use it to inspect individual subscriber devices (use list_subscribers instead). Read-only operation requiring PUSHNOTIF_API_KEY with 0 credit cost; when include_sdk_framework is passed ('html', 'nextjs', 'laravel', 'wordpress', 'flutter'), each app entry also includes ready-to-paste SDK setup code. Returns JSON { tenant_name, credits_balance, total_apps, apps: [{ id, site_name, site_url, active_subscribers, sdk_guide }] }.create_appRegister a new website domain or mobile application under the authenticated workspace and generate its unique ECDSA P-256 VAPID keypair and 1-line HTML SDK snippet. Use this tool when adding an additional website or app to an existing account; do not use it to modify an existing app's icon, welcome push, or mobile keys (use update_app_branding instead) or to remove an app (use delete_app instead). Requires PUSHNOTIF_API_KEY, costs 0 credits, and creates a persistent app record where site_url must be a valid HTTPS origin (or http://localhost for local testing). Returns JSON { ok, app: { id, site_name, site_url, vapid_public_key, created_at }, sdk_snippet }.update_app_brandingUpdate an existing application's notification icon URL, automated welcome push message (including drip delay welcome_delay_sec and promo target URL welcome_url), zero-downtime custom VAPID keys (vapid_public_key & vapid_private_key for migrating from OneSignal/LaraPush), and optional native mobile push credentials (Android FCM HTTP v1 service account JSON and iOS APNs .p8 key). Use this tool to configure app-level branding, onboarding welcome alerts, custom VAPID key migration, or native mobile credentials; do not use it to create a new app (use create_app instead) or configure on-site HTML popups (use configure_inapp_banner instead). Prerequisite: call list_apps first to obtain app_id. Requires PUSHNOTIF_API_KEY and idempotently updates only the fields provided at 0 configuration cost (when welcome_enabled=true, each new subscriber welcome push deducts 1 credit; APNs requires apns_key_id, apns_team_id, apns_bundle_id, and apns_p8_key together). Returns JSON { ok, app_id, icon_url, welcome_enabled, welcome_url, welcome_delay_sec, custom_vapid_updated, android_fcm_configured, ios_apns_configured }.delete_appPermanently delete a registered application (app_id) along with all of its subscriber device tokens, scheduled campaigns, and delivery history. Use this tool only when a user explicitly asks to remove a duplicate or decommissioned app; do not use it to pause notifications or change app settings (use update_app_branding or configure_inapp_banner instead). Prerequisite: call list_apps first to verify the exact app_id and active subscriber count. Requires PUSHNOTIF_API_KEY, costs 0 credits, and is irreversibly destructive (confirm_delete must be set to true or the call is rejected). Returns JSON { ok, deleted_app_id, deleted_site_name, subscribers_removed }.send_push_notificationBroadcast an immediate push notification across Web Push (VAPID), Android (FCM), and iOS (APNs) to active subscribers of a specific app_id. Use this tool for instant real-time delivery; do not use it for future or recurring broadcasts (use schedule_push_notification instead) or on-site HTML popups (use configure_inapp_banner instead). Prerequisite: call list_apps first to obtain app_id. Requires PUSHNOTIF_API_KEY, deducts 1 credit (Rp 0.20) per successfully delivered device (0 credits charged for 404/410 dead tokens, which are auto-pruned), and is irreversible once dispatched; when segment is set to a custom tag (from update_subscriber_tags) instead of 'all', only subscribers carrying that tag receive the broadcast, and omitting url defaults the tap action to the app's registered site_url. Returns JSON { ok, campaign_id, total_targeted, total_delivered, total_gone_pruned, credits_deducted, credits_remaining }.schedule_push_notificationCreate a new scheduled or recurring push notification campaign, edit an existing queued campaign (via update_campaign_id), or cancel a queued campaign before execution (via cancel_campaign_id). Use this tool for delayed, recurring, or editable future broadcasts; do not use it for immediate sending (use send_push_notification instead) or automated RSS feed polling (use configure_rss_autopush instead). Prerequisite: call list_apps to obtain app_id, or call get_campaign_analytics to obtain an existing cmp_sch_xxxx ID for editing or cancellation. Requires PUSHNOTIF_API_KEY; scheduling, editing, or canceling costs 0 credits up front, and 1 credit per delivered device is deducted only when the schedule fires (mutually exclusive modes: pass cancel_campaign_id to delete, update_campaign_id to modify fields in-place, or neither to create a new schedule). Returns JSON { ok, action, scheduled_campaign: { id, app_id, title, body, scheduled_for, recurrence_rule, status } }.configure_inapp_bannerConfigure and publish an on-site In-App Popup or Banner (center modal, top sticky bar, or bottom slide-in toast) rendered inside the website by the PushNotif SDK without requiring browser push permission. Use this tool for visual in-page promos and announcements; do not use it for OS lock-screen notifications (use send_push_notification instead). Prerequisite: call list_apps first to obtain app_id. Requires PUSHNOTIF_API_KEY; saving configuration is idempotent and costs 0 credits, while each live visitor display deducts 1 credit (inapp_trigger controls when the banner fires—such as 'scroll_50' for 50% page scroll or 'event:add_to_cart' for custom DOM events—combined with inapp_freq to cap repeat impressions per visitor). Returns JSON { ok, app_id, inapp_enabled, inapp_style, inapp_trigger, inapp_freq }.configure_rss_autopushConfigure automated 24/7 RSS, Atom, or XML Sitemap polling for an app_id, or trigger an immediate feed check and push broadcast via dispatch_now=true. Use this tool when a blog, news portal, or store wants newly published URLs automatically broadcast as push notifications; do not use it for manual one-off messages (use send_push_notification instead) or fixed-time calendar campaigns (use schedule_push_notification instead). Prerequisite: call list_apps first to obtain app_id. Requires PUSHNOTIF_API_KEY; feed URLs are validated against SSRF rules, deduplicated by item GUID/URL so each post is sent only once, and deduct 1 credit per delivered subscriber when a new item is broadcast (setting dispatch_now=true immediately fetches and broadcasts the newest feed entry even if rss_enabled=false). Returns JSON { ok, app_id, rss_enabled, rss_feed_url, rss_interval, dispatched_now, latest_item_title }.configure_payment_webhookGenerate the ready-to-paste Universal Incoming Webhook URL (POST /api/v1/apps/{app_id}/incoming-event) for 9 auto-detected formats (Midtrans, Xendit, Mayar, Lynk.id, Duitku, Tripay, Supabase Database/Auth, Saweria/Trakteer, Shopify, WooCommerce, GitHub, and Custom JSON), or trigger a live test event when simulate_test=true. Use this tool when connecting a payment gateway, Supabase backend, creator tipping page, or e-commerce store to automatically show a Live Activity Toast, broadcast a Web Push, and/or send a transactional receipt email upon settlement; do not use it for RSS blog feeds (use configure_rss_autopush instead) or manual push campaigns (use send_push_notification instead). Prerequisite: call list_apps first to obtain app_id. Requires PUSHNOTIF_API_KEY; generating the webhook URL costs 0 credits, while live or simulated push broadcasts deduct 1 credit per delivered device (toast_only mode costs 0 credits on display). Returns JSON { ok, app_id, mode, webhook_url, supported_platforms, setup_guides, simulation_result }.list_subscribersRetrieve active subscriber device records, assigned segment tags, platform breakdown counts (Web VAPID, Android FCM, iOS APNs), or full CSV/JSON backup export for zero-downtime migration. Use this tool to inspect audience size, platform distribution, export subscriber tokens (export_format="csv" or "json"), or obtain a subscriber_id before calling update_subscriber_tags; do not use it to view campaign click metrics (use get_campaign_analytics instead) or modify/import subscribers (use update_subscriber_tags instead). Read-only operation requiring PUSHNOTIF_API_KEY with 0 credit cost; filter by app_id and optional tag to narrow results. Returns JSON { total_active, platform_breakdown: { web, android_fcm, ios_apns }, subscribers: [{ id, app_id, platform, tags, created_at }], export_data }.- +7 more on the listing page
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
Codescene MCP Server
{
"mcpServers": {
"codescene-mcp-server": {
"command": "npx",
"args": [
"-y",
"@codescene/codehealth-mcp"
]
}
}
}
PushNotif Official MCP Server
{
"mcpServers": {
"pushnotif-official-mcp-server": {
"url": "https://pushnotif.biz.id/mcp"
}
}
}
Frequently asked questions
Codescene MCP Server is categorized under Developer Tools and uses a local stdio subprocess. PushNotif Official MCP Server belongs to Developer Tools and uses a remote HTTP/SSE transport. Pick Codescene MCP Server for developer tools work and PushNotif Official MCP Server for developer tools.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
Codescene MCP Server has no declared pricing — check the project's own site. PushNotif Official MCP Server has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add codescene-mcp-server and pushnotif-official-mcp-server as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, Codescene MCP Server has a quality signal of 65/100 (Great) with 3 views, 0 installs and 72 GitHub stars. PushNotif Official MCP Server has 61/100 (Good) with 0 views, 0 installs and 0 GitHub stars.