Skip to main content
Glama

Fmind Freelance AI Architect Website

Server Details

Read-only access to Fmind's portfolio, articles, and sites.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 43 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
fmind/www
GitHub Stars
0

TDQS

A4.1/5.0

Scored across 10 tools

Disambiguation4/5

The two compare_* tools target clearly different things (hosting budget vs MCP context cost), and the get_/list_ tools each map to a distinct resource. The only mild overlap is between list_publications, search_articles, and get_article, but their descriptions clarify list/search/fetch roles well.

Naming Consistency5/5

Every tool follows a clean verb_noun pattern (compare_llm_hosting, get_profile, list_certifications, search_articles). No mixing of conventions or vague verbs.

Tool Count5/5

Ten tools is well within the ideal range and each earns its place, covering profile, services, credentials, work, projects, publications, articles, and two calculators.

Completeness4/5

The read-only personal-site domain is well covered end-to-end (profile, services, certifications, experience, projects, publications, article search+fetch). No obvious dead ends, though the specialized compare_* calculators are somewhat tangential and the surface is inherently read-only.

Available Tools

10 tools
compare_llm_hostingCompare LLM hosting costsA
Read-only
Inspect

Compare a GKE infrastructure budget with managed APIs. Call with parameters={} for defaults and supported models, hardware, and plans. Simple mode accepts preset, model, billing, requests (calls/day), and window (auto, 24, 8, or 1 hour/day); set mode=simple when overriding requests. It sizes replicas under illustrative throughput assumptions. Interactive presets run 24/7; job and pipeline presets schedule running hours inside active windows. Commitments bill idle hours. Advanced mode keeps the fleet fixed and exposes custom token budgets, throughput, and running time. Break-even holds that fleet fixed and checks its capacity. Totals include compute and GKE; operations and additional services are excluded. Returns assumptions, USD costs, constraints, sources, and a shareable URL. Invalid inputs fail; no resources are provisioned. See /agents#calculator.

NameRequiredDescriptionDefault
parametersYesCalculator URL parameters as strings; use an empty object for defaults and available choices.

Output Schema

NameRequiredDescription
apisYes
tasksYes
unitsYes
inputsYes
modelsYes
latencyYes
presetsYes
sourcesYes
estimateYes
node_poolsYes
parametersYes
validationYes
limitationsYes
scenario_urlYes
calculated_onYes
quantizationsYes
snapshot_dateYes
comparison_readyYes
model_comparisonsYes
pilot_configurationYes
precision_comparisonsYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, and the description adds real value beyond that: 'no resources are provisioned', invalid inputs fail, idle hours are billed under commitments, and operations/additional services are excluded from totals. These are non-obvious cost-accounting behaviors the annotations cannot convey.

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?

Purpose and the zero-arg default call are front-loaded, then mode behavior follows in a logical order. It is dense and slightly run-on in the middle, but nearly every sentence carries distinct behavioral or parameter information rather than filler.

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?

Despite an output schema existing, the description still sketches what comes back (assumptions, USD costs, constraints, sources, shareable URL) and covers the exclusions and failure behavior. Nothing an agent needs to invoke this correctly is missing.

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 is a generic free-form string map, so its 100% coverage documents only the wrapper, not the actual keys. The description compensates by naming real parameters (preset, model, billing, requests, window, mode) and their allowed values ('auto, 24, 8, or 1 hour/day'), which the schema alone would not reveal.

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?

States a specific verb and resource ('Compare a GKE infrastructure budget with managed APIs') and immediately differentiates from the sibling compare_mcp_context_cost by naming the GKE-vs-managed-API scope. An agent can tell what is being compared without opening the schema.

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 says to call with parameters={} for defaults and available choices, when to use simple mode vs advanced mode, and how break-even differs ('holds that fleet fixed'). The window and mode interactions are spelled out, so an agent knows which mode to pick for which scenario.

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

compare_mcp_context_costCompare MCP context costsA
Read-only
Inspect

Count the tool-definition tokens that measured MCP servers (GitHub default toolset, Filesystem, Memory, Playwright) add to every model request, then price them as standard input for the managed APIs in the hosting snapshot. Omit servers for all four. Returns tokens per request and month, context share and USD per 1,000 requests and per 30-day month for each model, dated sources, limitations and a shareable page URL. Reference tokens, not provider billing. See /agents#mcp-context.

NameRequiredDescriptionDefault
serversNoDistinct server ids; omit for all.
requests_per_dayNoModel requests per day; count every call in agent loops.

Output Schema

NameRequiredDescription
toolsYes
modelsYes
serversYes
limitationsYes
scenario_urlYes
days_per_monthYes
requests_per_dayYes
tokens_per_monthYes
prices_checked_onYes
tokens_per_requestYes
snapshot_verified_onYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: the pricing is tied to a dated 'hosting snapshot', results include dated sources and limitations, and the final caveat 'Reference tokens, not provider billing' prevents the agent from misinterpreting the USD figures as actual spend.

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?

Front-loaded with the core action and structured as a single tight paragraph, with the caveat and reference link placed at the end where they belong. It is slightly over-full in enumerating every returned field (context share, USD per 1,000 requests, per 30-day month, page URL) when an output schema already exists, which costs it a point.

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?

With an output schema present, the description need not explain return values, yet it still enumerates them. For a two-parameter, zero-required, read-only tool with full schema coverage, everything an agent needs to call it correctly is present, though the redundant output enumeration and the missing explicit routing to compare_llm_hosting are the only remaining soft spots.

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?

Schema description coverage is 100%, so both parameters are already documented in structured form. The description restates the enum-free servers default ('omit for all four'), which is already the documented default, and adds nothing about requests_per_day semantics. This is the baseline case where the schema does the heavy lifting.

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?

States a specific verb pair (count and price) applied to a precise resource: the tool-definition tokens that four named MCP servers add to each model request. It implicitly separates itself from the billing-oriented sibling (compare_llm_hosting) with 'Reference tokens, not provider billing', but never names the alternative outright, so the differentiation is inferential rather than explicit.

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 tells the agent how to parameterize the call ('Omit servers for all four') and warns that results are reference tokens rather than provider billing, which is useful context. However, it never says when to reach for this tool versus compare_llm_hosting, and no prerequisites or exclusions are given. Usage is implied by the subject matter only.

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

get_articleRead an articleA
Read-only
Inspect

Read a public article's complete Markdown, dates, canonical URL, and hosted section links. Use a slug from search_articles; unknown and draft articles are unavailable.

NameRequiredDescriptionDefault
slugYes

Output Schema

NameRequiredDescription
articleYes
markdownYes
sectionsYes
canonical_urlYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, so the read-only nature is already known. The description adds behavioral context by specifying what content is returned and what is not available (unknown/draft articles). No contradiction, and the added detail goes beyond the annotation.

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?

Two sentences, with the core action and content front-loaded, followed by a single usage note. No wasted words; every sentence earns its place.

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?

For a single-parameter read tool with an output schema present, the description covers what is returned, what is not available, and how to obtain the required parameter. Nothing an agent needs to call it correctly is missing.

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?

Schema description coverage is 0%, so the description must compensate. It explains that the slug should come from search_articles, which gives its origin, but does not define what a slug is or its format beyond the schema pattern. This is helpful but incomplete.

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?

States a specific verb ('Read') and resource ('public article') and lists the exact content returned (complete Markdown, dates, canonical URL, hosted section links). It also implicitly differentiates from sibling search_articles by instructing to get the slug from there, so an agent can tell them apart.

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 tells the agent to obtain a slug from search_articles, establishing the prerequisite and alternative tool. Also states that unknown and draft articles are unavailable, giving clear exclusions for when not to use this tool.

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

get_profileGet profileA
Read-only
Inspect

Return the core profile: identity, headline, job title, contact, socials, biography, and areas of expertise.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
metadataYes
biographyYes
expertiseYes
leadershipYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered and the bar is lower. The description usefully adds the scope of what is returned (the field set), but discloses nothing further about auth requirements, caching, or behavior; with an output schema present, deeper return disclosure is not required.

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?

A single front-loaded sentence with the verb first and the returned content enumerated; no filler sentences. The trailing field list is somewhat dense, but every element earns its place by telling the agent what the profile contains.

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?

Zero-parameter tool with full annotation coverage and an output schema, so return format and safety are already handled elsewhere. The description fully covers what an agent needs to know before calling it.

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 takes zero parameters, so per the baseline there is no parameter semantics to explain and the description is not deficient here. It does not need to compensate for any schema gap.

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?

States a specific verb (Return) and resource (the core profile) and enumerates the exact contents: identity, headline, job title, contact, socials, biography, expertise. It is clearly distinguishable from list-style siblings like list_experience or get_article. It stops short of explicitly differentiating itself from sibling tools that expose overlapping sections.

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?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as get_services or list_experience, even though an agent could reasonably wonder whether the profile overlaps with those tools. Usage is only inferable from the name.

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

get_servicesGet professional servicesA
Read-only
Inspect

List the professional services on offer (AI architecture advisory and mentoring) with availability and how to book.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
servicesYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true, so the agent knows this is a safe read operation. The description adds meaningful behavioral scope by stating the response covers availability and how to book, without claiming any booking side effect. No contradiction exists.

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?

One tightly packed sentence front-loads the action and object ('List the professional services on offer') and follows with useful qualifiers. Every word earns its place; no filler or repetition of schema fields.

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?

For a parameterless, read-only list tool with an existing output schema, the description covers all necessary context: what is listed, the domain of the services, and the availability/booking details. Nothing needed for correct invocation is missing.

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 zero parameters, so the baseline for this dimension is 4. The description still helps by explaining what the returned list contains (offerings, availability, booking instructions), which is the only semantic content an agent could need.

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?

States a specific verb ('List') and resource ('professional services'), and goes beyond a label by naming the exact offerings (AI architecture advisory and mentoring) plus the availability/booking details. This distinguishes it clearly from sibling tools that cover profile, certifications, experience, projects, publications, and articles.

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 makes the tool's scope obvious—services, not profile credentials or publications—so an agent can select it without overlap. It does not explicitly name alternatives or exclusion conditions, but the sibling set is distinct enough that no stronger routing guidance is needed.

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

list_certificationsList credentialsA
Read-only
Inspect

List professional certifications, badges, and course specializations with their issuers.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
certificationsYes
specializationsYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds the scope of what is listed (certifications, badges, specializations, issuers) but does not disclose details like ordering, pagination, or whether the list is exhaustive. No contradiction with annotations exists.

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, front-loaded sentence with no filler. Every word contributes meaning, naming the action, the resource type, and an important attribute (issuers).

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?

For a parameterless, read-only list tool with an output schema, the description is fully sufficient. An agent can select and invoke this tool correctly without needing additional behavioral or parameter 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 tool has zero parameters and the schema coverage is 100%, so there is no parameter documentation burden for the description to carry. The baseline of 4 for no-parameter tools is appropriate.

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 uses a specific verb ('List') and a clear resource ('professional certifications, badges, and course specializations') with relevant detail about issuers. It is clearly distinguishable from sibling list tools like list_experience and list_projects because it names a distinct credential-focused resource.

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 implies when to use the tool: whenever an agent needs professional certifications or credentials. However, it does not explicitly state when not to use it or how it compares to alternatives such as get_profile or list_publications, leaving some routing to inference.

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

list_experienceList work experienceA
Read-only
Inspect

List professional work experience: companies, roles, descriptions, and skill tags.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
experienceYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the read-only nature is known. The description adds the specific content returned (companies, roles, etc.), which is useful context beyond the annotation. No contradictions or missing side effects are apparent for this simple list operation.

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?

A single sentence that states the action and the content categories without any filler. The core purpose is front-loaded, making it highly efficient for an agent to parse.

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?

The tool has no parameters, an output schema is present (so return structure is covered), and the description sufficiently describes what is listed. Nothing an agent needs to invoke it correctly is missing.

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?

There are zero parameters, and schema coverage is trivially 100%. Per the baseline for zero parameters, a score of 4 is appropriate; the description adds no parameter details because none exist.

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 uses a specific verb ('List') and resource ('professional work experience') and enumerates the returned fields (companies, roles, descriptions, skill tags). It clearly distinguishes from sibling tools like list_certifications or list_projects by naming the exact domain.

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 implies usage when work experience is needed, but it does not explicitly state when to prefer this over alternatives or mention any exclusions. The context of sibling tools makes it obvious, but no direct guidance is given.

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

list_projectsList projectsA
Read-only
Inspect

List open-source projects and educational YouTube series.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
open_sourceYes
youtube_seriesYes

TDQS

A3.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds no behavioral context such as ordering, filtering, deduplication, or scope limitations; 'open-source projects and educational YouTube series' defines content, not behavior. There is no contradiction, but the description also contributes no extra behavioral transparency.

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 clear sentence front-loaded with the verb 'List.' It contains no filler, no repetition of the tool name, and no extraneous details. Every word earns its place.

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?

This is a simple, zero-parameter list tool with an existing output schema and read-only annotations. The description fully captures the semantic domain, and nothing needed to invoke the tool correctly is missing. Sibling tools are distinct enough by name for an agent to differentiate.

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 zero parameters, so the schema is trivially complete at 100% coverage. The rubric sets a baseline of 4 for zero-parameter tools, and the description correctly has nothing to add about parameters.

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 states a specific verb 'List' plus the exact content scope: 'open-source projects and educational YouTube series.' It distinguishes itself from sibling tools like list_certifications and list_publications by naming the resource precisely. The title adds nothing beyond the description, which is appropriate.

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?

There is no guidance about when to use this tool versus its siblings such as list_publications or search_articles. The description does not express any exclusion condition or contextual trigger. Tool selection is left entirely to inference from the name and domain context, so this is a missing-guidance case rather than an implied one.

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

list_publicationsList publicationsA
Read-only
Inspect

List academic and written publications: the PhD thesis, peer-reviewed papers, and hosted articles.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
papersYes
thesisYes
articlesYes

TDQS

A4.5/5.0
Behavior4/5

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

The readOnlyHint annotation already signals a safe read operation. The description adds content-specific detail about what categories of publications are included, which goes beyond the annotation. It does not discuss sorting or pagination, but the output schema likely covers return details.

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?

A single, well-structured sentence that immediately identifies the resource and enumerates its scope. There is no wasted text or padding.

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?

With no parameters, a clear resource scope, an output schema present, and read-only annotations, the description is complete for an agent to invoke the tool correctly. Nothing essential is missing.

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 takes zero parameters, so the description carries no parameter-semantics burden. The schema is empty, and the baseline for zero-parameter tools is 4.

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 uses a specific verb ('List') and resource ('publications'), and enumerates the included content types (PhD thesis, peer-reviewed papers, hosted articles). This clearly distinguishes it from sibling tools like list_projects and list_certifications.

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 intended use case is clear: list all academic and written publications of a person. No explicit exclusions or alternative tool guidance is given, but the resource scope is unambiguous against siblings such as search_articles.

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

search_articlesSearch articlesA
Read-only
Inspect

Search the hosted articles by relevance (BM25 over titles, tags, descriptions, and full text) and return the best matches. Use it to answer what Fmind has written about a topic instead of listing every publication.

NameRequiredDescriptionDefault
tagNooptionally keep only articles with this tag, case-insensitive: Agent, Coding, LLM, RAG, MLOps, Cloud, Python, Project, Demo, Guide
limitNomaximum number of results to return (default 10, maximum 50)
queryYeswords to search for across article titles, tags, descriptions, and full text

Output Schema

NameRequiredDescription
queryYes
totalYes
articlesYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds meaningful behavioral detail beyond that: it reveals the ranking mechanism (BM25) and the set of fields searched, which helps an agent understand what matches and how results are ordered. This goes beyond the annotations without contradicting them.

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?

Two sentences, zero filler. The first sentence states the mechanism and behavior; the second gives the intended use case and differentiates from listing. Everything earns its place.

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 simple 3-parameter schema, the presence of an output schema, and the read-only annotation, the description covers the core purpose, usage guidance, and matching behavior. It lacks only minor details like handling of empty queries or sorting edge cases, but those are not necessary for correct tool selection and invocation.

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?

Schema description coverage is 100%, and the schema already explains query, tag, and limit in detail, including defaults, max, and tag enum values. The description does not add new parameter-level meaning beyond restating the searchable fields, so the baseline of 3 is appropriate.

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 states a specific action ('Search'), a specific resource ('hosted articles'), and a clear scope (BM25 over titles, tags, descriptions, and full text). It also distinguishes itself from listing every publication, which maps to a sibling tool, making its purpose unmistakable.

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 gives an explicit use case ('answer what Fmind has written about a topic') and an implicit alternative ('instead of listing every publication'). It does not name the sibling tool (list_publications) directly, but the guidance is clear and actionable without being vague.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedcompare_mcp_context_cost21 fields changed
      • removedInput schema / properties / parameters
        Removed value: -{
        -  "additionalProperties": {
        -    "maxLength": 128,
        -    "type": "string"
        -  },
        -  "description": "Calculator URL parameters as strings; empty object returns defaults and bounds.",
        -  "maxProperties": 32,
        -  "propertyNames": {
        -    "maxLength": 64
        -  },
        -  "title": "Parameters",
        -  "type": "object"
        -}
      • addedInput schema / properties / requests_per_day
        Added value: +{
        +  "default": 1000,
        +  "description": "Model requests per day; count every call in agent loops.",
        +  "maximum": 10000000,
        +  "minimum": 1,
        +  "title": "Requests Per Day",
        +  "type": "integer"
        +}
      • addedInput schema / properties / servers
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "enum": [
        +          "github",
        +          "filesystem",
        +          "memory",
        +          "playwright"
        +        ],
        +        "type": "string"
        +      },
        +      "maxItems": 4,
        +      "minItems": 1,
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Distinct server ids; omit for all.",
        +  "title": "Servers"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "parameters"
        -]
      • addedOutput schema / $defs / ModelCost
        Added value: +{
        +  "properties": {
        +    "context_percent": {
        +      "title": "Context Percent",
        +      "type": "number"
        +    },
        +    "input_per_million": {
        +      "title": "Input Per Million",
        +      "type": "number"
        +    },
        +    "input_token_limit": {
        +      "title": "Input Token Limit",
        +      "type": "integer"
        +    },
        +    "month_usd": {
        +      "title": "Month Usd",
        +      "type": "number"
        +    },
        +    "name": {
        +      "title": "Name",
        +      "type": "string"
        +    },
        +    "needs_review": {
        +      "title": "Needs Review",
        +      "type": "boolean"
        +    },
        +    "per_thousand_requests_usd": {
        +      "title": "Per Thousand Requests Usd",
        +      "type": "number"
        +    },
        +    "source_url": {
        +      "title": "Source Url",
        +      "type": "string"
        +    },
        +    "verified_on": {
        +      "title": "Verified On",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "input_per_million",
        +    "input_token_limit",
        +    "context_percent",
        +    "per_thousand_requests_usd",
        +    "month_usd",
        +    "source_url",
        +    "verified_on",
        +    "needs_review"
        +  ],
        +  "title": "ModelCost",
        +  "type": "object"
        +}
      • removedOutput schema / $defs / ModelSnapshot
        Removed value: -{
        -  "properties": {
        -    "cache_minimum": {
        -      "title": "Cache Minimum",
        -      "type": "integer"
        -    },
        -    "cache_price": {
        -      "title": "Cache Price",
        -      "type": "number"
        -    },
        -    "cache_url": {
        -      "title": "Cache Url",
        -      "type": "string"
        -    },
        -    "context_tokens": {
        -      "title": "Context Tokens",
        -      "type": "integer"
        -    },
        -    "id": {
        -      "title": "Id",
        -      "type": "string"
        -    },
        -    "input_price": {
        -      "title": "Input Price",
        -      "type": "number"
        -    },
        -    "model_url": {
        -      "title": "Model Url",
        -      "type": "string"
        -    },
        -    "name": {
        -      "title": "Name",
        -      "type": "string"
        -    },
        -    "note": {
        -      "title": "Note",
        -      "type": "string"
        -    },
        -    "price_url": {
        -      "title": "Price Url",
        -      "type": "string"
        -    },
        -    "verified_on": {
        -      "title": "Verified On",
        -      "type": "string"
        -    },
        -    "write_multiplier": {
        -      "title": "Write Multiplier",
        -      "type": "number"
        -    }
        -  },
        -  "required": [
        -    "id",
        -    "name",
        -    "context_tokens",
        -    "input_price",
        -    "cache_price",
        -    "write_multiplier",
        -    "cache_minimum",
        -    "verified_on",
        -    "price_url",
        -    "model_url",
        -    "cache_url",
        -    "note"
        -  ],
        -  "title": "ModelSnapshot",
        -  "type": "object"
        -}
      • removedOutput schema / $defs / NumberField
        Removed value: -{
        -  "properties": {
        -    "default": {
        -      "title": "Default",
        -      "type": "number"
        -    },
        -    "help": {
        -      "title": "Help",
        -      "type": "string"
        -    },
        -    "key": {
        -      "title": "Key",
        -      "type": "string"
        -    },
        -    "label": {
        -      "title": "Label",
        -      "type": "string"
        -    },
        -    "maximum": {
        -      "title": "Maximum",
        -      "type": "number"
        -    },
        -    "minimum": {
        -      "title": "Minimum",
        -      "type": "number"
        -    },
        -    "whole": {
        -      "default": false,
        -      "title": "Whole",
        -      "type": "boolean"
        -    }
        -  },
        -  "required": [
        -    "key",
        -    "label",
        -    "default",
        -    "minimum",
        -    "maximum",
        -    "help"
        -  ],
        -  "title": "NumberField",
        -  "type": "object"
        -}
      • removedOutput schema / $defs / Strategy
        Removed value: -{
        -  "properties": {
        -    "cache_eligible": {
        -      "title": "Cache Eligible",
        -      "type": "boolean"
        -    },
        -    "cached_average_request_usd": {
        -      "title": "Cached Average Request Usd",
        -      "type": "number"
        -    },
        -    "cached_day_usd": {
        -      "title": "Cached Day Usd",
        -      "type": "number"
        -    },
        -    "cached_month_usd": {
        -      "title": "Cached Month Usd",
        -      "type": "number"
        -    },
        -    "cached_saved_month_usd": {
        -      "title": "Cached Saved Month Usd",
        -      "type": "number"
        -    },
        -    "cached_session_usd": {
        -      "title": "Cached Session Usd",
        -      "type": "number"
        -    },
        -    "context_percent": {
        -      "title": "Context Percent",
        -      "type": "number"
        -    },
        -    "day_usd": {
        -      "title": "Day Usd",
        -      "type": "number"
        -    },
        -    "fits": {
        -      "title": "Fits",
        -      "type": "boolean"
        -    },
        -    "id": {
        -      "title": "Id",
        -      "type": "string"
        -    },
        -    "label": {
        -      "title": "Label",
        -      "type": "string"
        -    },
        -    "month_usd": {
        -      "title": "Month Usd",
        -      "type": "number"
        -    },
        -    "request_usd": {
        -      "title": "Request Usd",
        -      "type": "number"
        -    },
        -    "saved_month_usd": {
        -      "title": "Saved Month Usd",
        -      "type": "number"
        -    },
        -    "session_usd": {
        -      "title": "Session Usd",
        -      "type": "number"
        -    },
        -    "tokens_request": {
        -      "title": "Tokens Request",
        -      "type": "integer"
        -    }
        -  },
        -  "required": [
        -    "id",
        -    "label",
        -    "tokens_request",
        -    "context_percent",
        -    "fits",
        -    "cache_eligible",
        -    "request_usd",
        -    "cached_average_request_usd",
        -    "session_usd",
        -    "day_usd",
        -    "month_usd",
        -    "cached_session_usd",
        -    "cached_day_usd",
        -    "cached_month_usd",
        -    "saved_month_usd",
        -    "cached_saved_month_usd"
        -  ],
        -  "title": "Strategy",
        -  "type": "object"
        -}
      • addedOutput schema / properties / days_per_month
        Added value: +{
        +  "title": "Days Per Month",
        +  "type": "integer"
        +}
      • removedOutput schema / properties / fields
        Removed value: -{
        -  "items": {
        -    "$ref": "#/$defs/NumberField"
        -  },
        -  "title": "Fields",
        -  "type": "array"
        -}
      • changedOutput schema / properties / models / items / $ref
        Previous value: -"#/$defs/ModelSnapshot"New value: +"#/$defs/ModelCost"
      • removedOutput schema / properties / parameters
        Removed value: -{
        -  "additionalProperties": {
        -    "type": "string"
        -  },
        -  "title": "Parameters",
        -  "type": "object"
        -}
      • addedOutput schema / properties / prices_checked_on
        Added value: +{
        +  "title": "Prices Checked On",
        +  "type": "string"
        +}
      • addedOutput schema / properties / requests_per_day
        Added value: +{
        +  "title": "Requests Per Day",
        +  "type": "integer"
        +}
      • removedOutput schema / properties / snapshot_date
        Removed value: -{
        -  "title": "Snapshot Date",
        -  "type": "string"
        -}
      • addedOutput schema / properties / snapshot_verified_on
        Added value: +{
        +  "title": "Snapshot Verified On",
        +  "type": "string"
        +}
      • removedOutput schema / properties / strategies
        Removed value: -{
        -  "items": {
        -    "$ref": "#/$defs/Strategy"
        -  },
        -  "title": "Strategies",
        -  "type": "array"
        -}
      • addedOutput schema / properties / tokens_per_month
        Added value: +{
        +  "title": "Tokens Per Month",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / tokens_per_request
        Added value: +{
        +  "title": "Tokens Per Request",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / tools
        Added value: +{
        +  "title": "Tools",
        +  "type": "integer"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "scenario_url",
        -  "parameters",
        -  "strategies",
        -  "servers",
        -  "models",
        -  "fields",
        -  "snapshot_date",
        -  "limitations"
        -]New value: +[
        +  "servers",
        +  "requests_per_day",
        +  "days_per_month",
        +  "tools",
        +  "tokens_per_request",
        +  "tokens_per_month",
        +  "models",
        +  "scenario_url",
        +  "snapshot_verified_on",
        +  "prices_checked_on",
        +  "limitations"
        +]
  2. 1 tool update
    • Changedget_profile2 fields changed
      • addedOutput schema / $defs / Metadata / properties / google_analytics_id
        Added value: +{
        +  "title": "Google Analytics Id",
        +  "type": "string"
        +}
      • changedOutput schema / $defs / Metadata / required
        Previous value: -[
        -  "name",
        -  "alternate_name",
        -  "site_name",
        -  "title",
        -  "job_title",
        -  "headline_primary",
        -  "headline_secondary",
        -  "description",
        -  "keywords",
        -  "email",
        -  "calendar_url",
        -  "site_url",
        -  "twitter_handle",
        -  "socials",
        -  "work_location"
        -]New value: +[
        +  "name",
        +  "alternate_name",
        +  "site_name",
        +  "title",
        +  "job_title",
        +  "headline_primary",
        +  "headline_secondary",
        +  "description",
        +  "keywords",
        +  "email",
        +  "calendar_url",
        +  "site_url",
        +  "twitter_handle",
        +  "google_analytics_id",
        +  "socials",
        +  "work_location"
        +]
  3. 1 tool update
    • Addedcompare_mcp_context_cost
  4. 1 tool update
    • Changedcompare_llm_hosting36 fields changed
      • addedOutput schema / $defs / DemandPreset / properties / scheduled
        Added value: +{
        +  "default": false,
        +  "title": "Scheduled",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / DemandPreset / properties / window_hours
        Added value: +{
        +  "default": 24,
        +  "title": "Window Hours",
        +  "type": "number"
        +}
      • removedOutput schema / $defs / FrontierModel / properties / analysis_url
        Removed value: -{
        -  "title": "Analysis Url",
        -  "type": "string"
        -}
      • addedOutput schema / $defs / FrontierModel / properties / checkpoint_memory
        Added value: +{
        +  "default": [],
        +  "items": {
        +    "maxItems": 2,
        +    "minItems": 2,
        +    "prefixItems": [
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "number"
        +      }
        +    ],
        +    "type": "array"
        +  },
        +  "title": "Checkpoint Memory",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / FrontierModel / properties / checkpoint_urls
        Added value: +{
        +  "default": [],
        +  "items": {
        +    "maxItems": 2,
        +    "minItems": 2,
        +    "prefixItems": [
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "string"
        +      }
        +    ],
        +    "type": "array"
        +  },
        +  "title": "Checkpoint Urls",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / FrontierModel / properties / default_quantization
        Added value: +{
        +  "default": "fp16",
        +  "title": "Default Quantization",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / FrontierModel / properties / deployment_issue
        Added value: +{
        +  "default": "",
        +  "title": "Deployment Issue",
        +  "type": "string"
        +}
      • removedOutput schema / $defs / FrontierModel / properties / intelligence
        Removed value: -{
        -  "title": "Intelligence",
        -  "type": "number"
        -}
      • removedOutput schema / $defs / FrontierModel / properties / minimum_node_id
        Removed value: -{
        -  "title": "Minimum Node Id",
        -  "type": "string"
        -}
      • removedOutput schema / $defs / FrontierModel / properties / minimum_nodes
        Removed value: -{
        -  "title": "Minimum Nodes",
        -  "type": "integer"
        -}
      • addedOutput schema / $defs / FrontierModel / properties / node_context_limits
        Added value: +{
        +  "default": [],
        +  "items": {
        +    "maxItems": 2,
        +    "minItems": 2,
        +    "prefixItems": [
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "integer"
        +      }
        +    ],
        +    "type": "array"
        +  },
        +  "title": "Node Context Limits",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / FrontierModel / properties / node_minimums
        Added value: +{
        +  "default": [],
        +  "items": {
        +    "maxItems": 2,
        +    "minItems": 2,
        +    "prefixItems": [
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "integer"
        +      }
        +    ],
        +    "type": "array"
        +  },
        +  "title": "Node Minimums",
        +  "type": "array"
        +}
      • removedOutput schema / $defs / FrontierModel / properties / rank
        Removed value: -{
        -  "title": "Rank",
        -  "type": "integer"
        -}
      • addedOutput schema / $defs / FrontierModel / properties / recipe_url
        Added value: +{
        +  "default": "",
        +  "title": "Recipe Url",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / FrontierModel / properties / required_node_ids
        Added value: +{
        +  "default": [],
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Required Node Ids",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / FrontierModel / properties / supported_quantizations
        Added value: +{
        +  "default": [
        +    "fp4",
        +    "fp8",
        +    "fp16"
        +  ],
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Supported Quantizations",
        +  "type": "array"
        +}
      • changedOutput schema / $defs / FrontierModel / required
        Previous value: -[
        -  "id",
        -  "rank",
        -  "name",
        -  "creator",
        -  "intelligence",
        -  "parameters_b",
        -  "active_parameters",
        -  "context_tokens",
        -  "license",
        -  "license_class",
        -  "analysis_url",
        -  "weights_url",
        -  "minimum_node_id",
        -  "minimum_nodes"
        -]New value: +[
        +  "id",
        +  "name",
        +  "creator",
        +  "parameters_b",
        +  "active_parameters",
        +  "context_tokens",
        +  "license",
        +  "license_class",
        +  "weights_url"
        +]
      • addedOutput schema / $defs / HostingEstimate / properties / capacity_requests_month
        Added value: +{
        +  "title": "Capacity Requests Month",
        +  "type": "integer"
        +}
      • addedOutput schema / $defs / HostingEstimate / properties / compatibility_issue
        Added value: +{
        +  "title": "Compatibility Issue",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / HostingEstimate / properties / daily_demand_fits
        Added value: +{
        +  "title": "Daily Demand Fits",
        +  "type": "boolean"
        +}
      • removedOutput schema / $defs / HostingEstimate / properties / platform_monthly_usd
        Removed value: -{
        -  "title": "Platform Monthly Usd",
        -  "type": "number"
        -}
      • addedOutput schema / $defs / HostingEstimate / properties / required_output_tokens_per_second
        Added value: +{
        +  "title": "Required Output Tokens Per Second",
        +  "type": "number"
        +}
      • addedOutput schema / $defs / HostingEstimate / properties / usable_output_tokens_per_second
        Added value: +{
        +  "title": "Usable Output Tokens Per Second",
        +  "type": "number"
        +}
      • addedOutput schema / $defs / HostingEstimate / properties / window_capacity_pct
        Added value: +{
        +  "title": "Window Capacity Pct",
        +  "type": "number"
        +}
      • changedOutput schema / $defs / HostingEstimate / required
        Previous value: -[
        -  "weight_memory_gb",
        -  "required_memory_gb",
        -  "nodes_per_replica",
        -  "total_nodes",
        -  "total_gpus",
        -  "compute_monthly_usd",
        -  "control_monthly_usd",
        -  "platform_monthly_usd",
        -  "total_monthly_usd",
        -  "capacity_tokens_month",
        -  "capacity_requests_day",
        -  "requests_month",
        -  "input_tokens_month",
        -  "output_tokens_month",
        -  "demand_capacity_pct",
        -  "per_thousand_requests_usd",
        -  "demand_fits",
        -  "context_issue",
        -  "topology_confirmed",
        -  "qualified"
        -]New value: +[
        +  "weight_memory_gb",
        +  "required_memory_gb",
        +  "nodes_per_replica",
        +  "total_nodes",
        +  "total_gpus",
        +  "compute_monthly_usd",
        +  "control_monthly_usd",
        +  "total_monthly_usd",
        +  "capacity_tokens_month",
        +  "capacity_requests_day",
        +  "requests_month",
        +  "input_tokens_month",
        +  "output_tokens_month",
        +  "demand_capacity_pct",
        +  "window_capacity_pct",
        +  "required_output_tokens_per_second",
        +  "usable_output_tokens_per_second",
        +  "capacity_requests_month",
        +  "per_thousand_requests_usd",
        +  "demand_fits",
        +  "context_issue",
        +  "topology_confirmed",
        +  "qualified",
        +  "compatibility_issue",
        +  "daily_demand_fits"
        +]
      • addedOutput schema / $defs / HostingInputs / properties / demand_window_hours
        Added value: +{
        +  "title": "Demand Window Hours",
        +  "type": "number"
        +}
      • addedOutput schema / $defs / HostingInputs / properties / mode
        Added value: +{
        +  "default": "advanced",
        +  "title": "Mode",
        +  "type": "string"
        +}
      • removedOutput schema / $defs / HostingInputs / properties / platform_monthly_usd
        Removed value: -{
        -  "title": "Platform Monthly Usd",
        -  "type": "number"
        -}
      • addedOutput schema / $defs / HostingInputs / properties / quality / items
        Added value: +{
        +  "$ref": "#/$defs/TaskQuality"
        +}
      • removedOutput schema / $defs / HostingInputs / properties / quality / maxItems
        Removed value: -4
      • removedOutput schema / $defs / HostingInputs / properties / quality / minItems
        Removed value: -4
      • removedOutput schema / $defs / HostingInputs / properties / quality / prefixItems
        Removed value: -[
        -  {
        -    "$ref": "#/$defs/TaskQuality"
        -  },
        -  {
        -    "$ref": "#/$defs/TaskQuality"
        -  },
        -  {
        -    "$ref": "#/$defs/TaskQuality"
        -  },
        -  {
        -    "$ref": "#/$defs/TaskQuality"
        -  }
        -]
      • changedOutput schema / $defs / HostingInputs / required
        Previous value: -[
        -  "model_id",
        -  "node_pool_id",
        -  "quantization_id",
        -  "replicas",
        -  "duty_cycle_percent",
        -  "memory_overhead_pct",
        -  "tokens_per_second",
        -  "target_utilization",
        -  "output_tokens_request",
        -  "input_tokens_request",
        -  "requests_per_day",
        -  "active_days",
        -  "platform_monthly_usd",
        -  "api_mode",
        -  "cache_prefix_tokens",
        -  "cache_requests",
        -  "concurrency",
        -  "target_first_token",
        -  "target_completion",
        -  "measured_concurrency",
        -  "measured_first_token",
        -  "measured_completion",
        -  "tasks_per_month",
        -  "review_hourly_usd",
        -  "quality",
        -  "quality_enabled"
        -]New value: +[
        +  "model_id",
        +  "node_pool_id",
        +  "quantization_id",
        +  "replicas",
        +  "duty_cycle_percent",
        +  "memory_overhead_pct",
        +  "tokens_per_second",
        +  "target_utilization",
        +  "output_tokens_request",
        +  "input_tokens_request",
        +  "requests_per_day",
        +  "active_days",
        +  "demand_window_hours",
        +  "api_mode",
        +  "cache_prefix_tokens",
        +  "cache_requests",
        +  "concurrency",
        +  "target_first_token",
        +  "target_completion",
        +  "measured_concurrency",
        +  "measured_first_token",
        +  "measured_completion",
        +  "tasks_per_month",
        +  "review_hourly_usd",
        +  "quality",
        +  "quality_enabled"
        +]
      • addedOutput schema / $defs / PrecisionComparison / properties / node
        Added value: +{
        +  "$ref": "#/$defs/GKENodePool"
        +}
      • addedOutput schema / $defs / PrecisionComparison / properties / url
        Added value: +{
        +  "title": "Url",
        +  "type": "string"
        +}
      • changedOutput schema / $defs / PrecisionComparison / required
        Previous value: -[
        -  "quantization",
        -  "estimate"
        -]New value: +[
        +  "quantization",
        +  "estimate",
        +  "node",
        +  "url"
        +]
  5. 1 tool update
    • Changedsearch_articles1 field changed
      • addedInput schema / properties / tag
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "optionally keep only articles with this tag, case-insensitive: Agent, Coding, LLM, RAG, MLOps, Cloud, Python, Project, Demo, Guide",
        +  "title": "Tag"
        +}
  6. 1 tool update
    • Changedget_profile2 fields changed
      • addedOutput schema / $defs / Metadata / properties / work_location
        Added value: +{
        +  "title": "Work Location",
        +  "type": "string"
        +}
      • changedOutput schema / $defs / Metadata / required
        Previous value: -[
        -  "name",
        -  "alternate_name",
        -  "site_name",
        -  "title",
        -  "job_title",
        -  "headline_primary",
        -  "headline_secondary",
        -  "description",
        -  "keywords",
        -  "email",
        -  "calendar_url",
        -  "site_url",
        -  "twitter_handle",
        -  "socials"
        -]New value: +[
        +  "name",
        +  "alternate_name",
        +  "site_name",
        +  "title",
        +  "job_title",
        +  "headline_primary",
        +  "headline_secondary",
        +  "description",
        +  "keywords",
        +  "email",
        +  "calendar_url",
        +  "site_url",
        +  "twitter_handle",
        +  "socials",
        +  "work_location"
        +]
  7. 2 tool updates
    • Addedcompare_llm_hosting
    • Addedget_article
  8. 1 tool update
    • Changedsearch_articles1 field changed
      • changedInput schema / properties / limit / default
        Previous value: -0New value: +10
  9. 7 tool updates
    • First observedget_profile
    • First observedget_services
    • First observedlist_certifications
    • First observedlist_experience
    • First observedlist_projects
    • First observedlist_publications
    • First observedsearch_articles

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables read-only access to a Fillfolio account's normalized portfolio data, including net worth, holdings with cost basis, cash and liabilities, activity, and exact asset details, plus optional bank spending summaries, transactions, and budgets for eligible accounts. Clients can query stored data only — they cannot trade, move money, modify holdings, or access credentials.
    1 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables read-only access to Finary portfolio data, including profiles, organizations, institution connections, portfolios, and transactions, through MCP.
    5
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.