Skip to main content
Glama
mixophrygian

Browser History Analysis MCP

by mixophrygian

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation4/5

    Most tools have distinct purposes: check_browser_status verifies browser availability, get_browser_history retrieves raw data, analyze_browser_history performs analysis, search_browser_history searches, and suggest_categories handles categorization. However, analyze_browser_history's 'comprehensive' mode might overlap with other tools like suggest_categories, creating minor ambiguity in advanced workflows.

    Naming Consistency5/5

    All tool names follow a consistent snake_case pattern with clear verb_noun combinations (e.g., check_browser_status, get_browser_history, analyze_browser_history). This predictability makes it easy for agents to understand and select tools without confusion.

    Tool Count5/5

    With 7 tools, the server is well-scoped for browser history analysis, covering key steps from checking browser status to retrieving, analyzing, searching, and categorizing history. Each tool serves a specific role without unnecessary bloat or gaps in the workflow.

    Completeness4/5

    The toolset covers a complete workflow: status check, data retrieval, analysis, search, and categorization. A minor gap exists as analyze_browser_history's 'basic' mode is noted as 'not yet implemented,' which could limit some analysis options, but core operations are well-covered.

  • Average 3.7/5 across 7 of 7 tools scored. Lowest: 2.9/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. The description mentions 'diagnose' and 'debugging,' which implies a read-only analysis, but it does not clarify if this tool performs any mutations, requires specific permissions, has rate limits, or what the output entails. For a tool with zero annotation coverage, this is a significant gap in transparency about its behavior and constraints.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is concise with two short sentences that directly state the purpose and usage context without unnecessary details. It is front-loaded with the core function. However, it could be slightly more structured by explicitly separating purpose from guidelines, but overall, it earns its place efficiently.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool has 0 parameters, 100% schema coverage, and an output schema exists (which means return values are documented elsewhere), the description provides a basic purpose and usage hint. However, for a diagnostic tool with no annotations, it lacks details on what 'diagnose' entails, potential side effects, or integration specifics, making it minimally adequate but with clear gaps in completeness.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has 0 parameters, and the schema description coverage is 100%, meaning there are no parameters to document. The description does not need to add parameter semantics beyond what the schema provides. According to the rules, for 0 parameters, the baseline score is 4, as the description appropriately does not waste space on non-existent parameters.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose3/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description states the tool 'diagnose[s] Safari support and accessibility' and mentions it's 'useful for debugging Safari integration,' which gives a general purpose. However, it lacks specificity about what 'diagnose' entails (e.g., what aspects of support/accessibility) and does not clearly differentiate from sibling tools like 'check_browser_status' or 'health_check,' which might overlap in functionality. This results in a vague but not tautological purpose.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides minimal guidance by stating it's 'useful for debugging Safari integration,' which implies a context of troubleshooting. However, it does not specify when to use this tool versus alternatives like 'check_browser_status' or 'health_check,' nor does it mention any prerequisites or exclusions. This lack of explicit when/when-not usage or named alternatives leaves the agent with insufficient guidance.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions searching 'for specific queries' and using it 'after getting history data', but lacks details on permissions, rate limits, response format, or whether it's read-only or destructive. For a search tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is appropriately sized with two sentences and a parameter explanation. It's front-loaded with the main purpose, and the 'Args' section adds necessary detail without redundancy. However, the phrase 'Use this after getting history data' could be more specific, and overall structure is efficient but not perfectly polished.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's complexity (simple search with one parameter), an output schema exists, and no annotations are provided, the description is minimally adequate. It covers the basic purpose and parameter semantics but lacks behavioral details and clear differentiation from siblings. With an output schema, it doesn't need to explain return values, but more context on usage and behavior would improve completeness.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The description adds meaning beyond the input schema by explaining that the 'query' parameter is a 'Search term to look for in URLs and titles'. This clarifies the parameter's purpose, but since schema description coverage is 0% and there's only one parameter, the baseline is 4. However, it doesn't provide additional context like format examples or constraints, so it scores slightly lower.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's purpose: 'Search browser history for specific queries.' It specifies the verb ('search') and resource ('browser history'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_browser_history' or 'analyze_browser_history', which might have overlapping functionality.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides some usage guidance: 'Use this after getting history data.' This implies a prerequisite or sequence, but it doesn't clarify when to use this tool versus alternatives like 'get_browser_history' or 'analyze_browser_history'. No explicit when-not-to-use or alternative recommendations are given.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'fastest' for 'quick_summary' and 'limits analysis for faster processing' for 'fast_mode', which adds some performance context. However, it lacks critical details like whether this is a read-only or mutating operation, any authentication needs, rate limits, or what 'not yet implemented' means for 'basic' analysis. The description does not contradict annotations, but it is insufficient for a tool with potential behavioral complexities.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is appropriately sized and front-loaded, starting with the main purpose and then detailing parameters in a structured list. Every sentence adds value, such as clarifying analysis types and defaults, with no redundant information. It could be slightly more concise by integrating the 'Step 3' context more smoothly, but overall it is well-structured and efficient.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given 3 parameters with 0% schema coverage and no annotations, the description does a good job explaining parameters and usage context. However, with an output schema present, it need not explain return values, but it still lacks details on behavioral aspects like safety, permissions, or error handling. For a tool that performs analysis (potentially resource-intensive), this leaves gaps in completeness, though it meets minimum viable standards.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema description coverage is 0%, so the description must compensate. It adds significant meaning beyond the schema by explaining each parameter: 'time_period_in_days' as 'Number of days of history to analyze', 'analysis_type' with detailed options and their effects (e.g., 'Basic stats only' for 'quick_summary'), and 'fast_mode' as 'limits analysis for faster processing'. This effectively documents all 3 parameters, though it could provide more on default behaviors or constraints.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose3/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description states the tool 'analyzes browser history with different levels of detail' and 'consolidates all analysis options', which gives a general purpose but lacks specificity about what resources or data it operates on. It distinguishes from siblings like 'get_browser_history' (retrieval) and 'search_browser_history' (searching), but the purpose remains somewhat vague without concrete examples of what 'analysis' entails.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context by positioning this as 'Step 3' and 'the main analysis tool', implying a sequence or primary role among siblings. It distinguishes from alternatives by noting 'consolidates all analysis options', suggesting it's comprehensive, but does not explicitly state when not to use it or name specific alternatives among the siblings.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool is used 'after running analysis,' hinting at dependencies, but doesn't describe key behaviors like whether this is a read-only operation, potential rate limits, authentication needs, or what the output entails. For a tool with no annotations, this leaves significant gaps in understanding its behavior.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is extremely concise and front-loaded: two short sentences that directly state the purpose and usage guideline without any waste. Every word earns its place, making it easy for an agent to parse quickly.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool has no parameters, an output schema exists (which handles return values), and no annotations, the description is minimally adequate. It covers purpose and usage but lacks behavioral context like safety or dependencies. For a tool with zero parameters and an output schema, it's complete enough to be functional but could benefit from more behavioral details.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema has 0 parameters with 100% coverage, meaning there are no parameters to document. The description doesn't need to add parameter details, so it meets the baseline for this case. It implicitly suggests the tool might rely on prior analysis results, but since no parameters exist, this doesn't affect the score negatively.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's purpose: 'Get uncategorized URLs for custom categorization.' It specifies the verb ('Get') and resource ('uncategorized URLs'), and the goal ('for custom categorization'). However, it doesn't explicitly differentiate from sibling tools like 'get_browser_history' or 'search_browser_history' in terms of scope or filtering, which prevents a perfect score.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context for when to use the tool: 'Use this after running analysis.' This implies a prerequisite or sequence, guiding the agent on timing. However, it doesn't specify alternatives or when not to use it, such as compared to sibling tools for categorized data, so it falls short of a 5.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions speed ('fastest way') and that it returns 'raw' data 'without analysis', which adds useful context. However, it doesn't disclose important behavioral aspects like whether this requires special permissions, what format the history entries have, or how errors are handled for a tool that interacts with browser data.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured and appropriately sized. It begins with the core purpose, provides usage guidance, then documents parameters and return values in clear sections. Every sentence earns its place, with no redundant information. The 'Step 2' prefix is slightly odd but doesn't detract significantly.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool has an output schema (though not shown), the description doesn't need to fully explain return values, though it helpfully mentions the two possible return structures. With no annotations and 3 parameters, the description does a good job explaining parameters and basic behavior. The main gap is lack of information about permissions, error handling, or data format details that would be important for browser history access.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The description provides parameter documentation in the 'Args' section that explains all three parameters with meaningful context beyond the schema. With 0% schema description coverage, this fully compensates by explaining what each parameter does, including defaults and browser options. The only minor gap is not explaining what 'auto-detect' means for browser_type when None.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's purpose: 'Get raw browser history data without analysis.' It specifies the verb ('get') and resource ('raw browser history data'), distinguishing it from analysis-focused siblings like 'analyze_browser_history'. However, it doesn't explicitly differentiate from other retrieval siblings like 'search_browser_history' beyond speed emphasis.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context for when to use this tool: 'This is the fastest way to retrieve browser history and should be used before any analysis.' This implies it's for initial data retrieval rather than analysis or searching. It doesn't explicitly state when NOT to use it or name alternatives, but the 'before any analysis' guidance is helpful.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries full burden and does well by disclosing key behaviors: it returns specific statuses and fields, indicates user action requirements, and provides error handling. However, it doesn't mention potential side effects like performance impact or authentication needs, leaving some gaps.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured and front-loaded with the core purpose, followed by output details and important usage notes. However, the step numbering ('Step 1:') is slightly redundant and could be more concise, though overall it's efficient and informative.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's complexity (status checking with user interactions), no annotations, and the presence of an output schema, the description is complete: it explains the purpose, usage context, output structure, and critical actions, covering all necessary aspects without needing to detail return values since an output schema exists.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Since there are 0 parameters and schema description coverage is 100%, the baseline is 4. The description appropriately doesn't add parameter details, focusing instead on output semantics, which aligns with the tool's no-input nature.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's purpose with specific verbs ('check which browsers are available and which are locked') and resources ('browsers'), distinguishing it from siblings like analyze_browser_history or get_browser_history by focusing on status rather than history or analysis.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Explicitly states when to use this tool ('first step in the workflow - run this to see if you need to close any browsers') and provides a clear action requirement ('If status is "browser_locked", you MUST tell the user to close the specified browser(s)'), effectively guiding usage versus alternatives.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden. It discloses key behavioral traits: 'returns immediately' (indicating low latency/no processing delay) and 'test if the MCP server is working' (clarifying the diagnostic nature). However, it doesn't specify response format, error conditions, or what 'working' entails.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, efficient sentence that front-loads the essential information: 'Simple health check' establishes purpose, 'returns immediately' describes behavior, and 'to test if the MCP server is working' provides usage context. Every word earns its place with zero waste.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's simplicity (0 parameters, no annotations, but has output schema), the description is complete enough. It explains what the tool does, when to use it, and key behavioral characteristics. With an output schema present, the description doesn't need to explain return values, making this appropriately comprehensive.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has 0 parameters with 100% schema description coverage. The description appropriately doesn't discuss parameters since none exist, maintaining focus on the tool's purpose. A baseline of 4 is appropriate for zero-parameter tools when the description is otherwise complete.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's purpose: 'Simple health check that returns immediately to test if the MCP server is working.' It specifies the verb ('health check'), resource ('MCP server'), and distinguishes it from siblings by focusing on server functionality testing rather than browser-related operations.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description explicitly states when to use this tool: 'to test if the MCP server is working.' It provides clear context for usage (verifying server connectivity/functionality) and implicitly distinguishes it from sibling tools that handle browser-specific operations like history analysis or status checks.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

browser_history_mcp MCP server

Copy to your README.md:

Score Badge

browser_history_mcp MCP server

Copy to your README.md:

Latest Blog Posts

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/mixophrygian/browser_history_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server