Khalid Ibne Hasan · Portfolio
Server Details
Query Khalid Ibne Hasan's portfolio: profile, availability, case studies, writing, and resume.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
9 toolsask_khalidask khalidAInspect
Asks Khalid Ibne Hasan's chat persona one question and returns its answer. The persona is LLM-backed, grounded in khalidibnehasan.com content, and answers as Khalid about his work, experience, and availability. To actually reach Khalid, use the contact form at https://www.khalidibnehasan.com/contact or book a call at https://calendly.com/khalidibnehasan/30min.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | The question to ask Khalid's chat persona. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It clearly reveals that the tool is LLM-backed, grounded in khalidibnehasan.com content, and speaks as Khalid's persona rather than the real person, which is important context for setting expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the core action in the first sentence. The second and third sentences add crucial guidance about the persona's nature and the alternative ways to reach the real person without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description covers the tool's purpose, its behavior, its grounding, and the appropriate alternatives. Nothing essential is missing for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers the single 'question' parameter at 100%, so the baseline is 3. The description reinforces that a question is asked but does not add meaningful new details about format, constraints, or expected input beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('asks'), a specific resource (Khalid's chat persona), and a clear outcome ('returns its answer'). It clearly distinguishes this from the sibling tools by framing it as the persona/chat tool rather than a data-retrieval tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly explains when to use the tool (to ask about Khalid's work, experience, and availability) and when not to use it (to actually reach Khalid, use the contact form or book a call). This gives an agent actionable routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_availabilityget availabilityAInspect
Returns what Khalid Ibne Hasan is currently open to (advisory, speaking, and similar engagements) plus the ways to reach him, including a direct call-booking link.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the responsibility of disclosing behavior. It clearly conveys that the tool returns current availability status and contact avenues, including a direct call-booking link, which gives the agent a good sense of what to expect. It does not overpromise or hide side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately states what is returned and includes the most important details: current availability and direct contact/call-booking options. There is no wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description is complete: it names the subject, the current availability scope, the types of engagements, and the contact resources including a call-booking link. An agent has enough context to invoke and interpret the result correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics to clarify. The description adds useful context about the output instead, which is appropriate given no input is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Returns') and clearly defines the resource: Khalid Ibne Hasan's current availability for engagements plus contact methods. It is distinct from siblings like get_profile or get_resume because it focuses specifically on current openness and a call-booking link.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool should be used when the user wants to know what Khalid Ibne Hasan is currently open to or how to reach him. However, it does not explicitly state when to use it over alternatives such as ask_khalid or get_profile, nor does it mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_case_studyget case studyAInspect
Returns the full case study for one project by slug: role, year, impact, description, highlights, and stack. Get slugs from list_projects.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The project slug, as returned by list_projects. |
TDQS
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 accurately frames the operation as a retrieval ('Returns') and specifies the keys of the response (role, year, impact, description, highlights, stack), making the outcome predictable. It does not mention behavior for nonexistent slugs or rate limits, but for a simple read-only getter these omissions are minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. The first sentence front-loads the action and scope and lists the reply fields; the second gives the only required dependency. Every word adds value, and the structure allows rapid parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a single-parameter getter with no output schema, and the description fully covers what an agent needs to invoke it correctly: the slug source (list_projects) and the exact set of fields returned. There is no pagination, nested objects, or side effects. The description is complete for normal use despite having no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the slug parameter's schema description already states it is 'The project slug, as returned by list_projects.' The tool description repeats this dependency with 'Get slugs from list_projects', which reinforces but does not add new semantic meaning beyond the schema. Therefore the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Returns') and a specific resource ('full case study for one project by slug'), and enumerates the exact fields (role, year, impact, description, highlights, stack). It also distinguishes itself from list_projects by scoping to a single project's detail. This is clearly differentiable from sibling tools like get_post or list_projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by saying 'Get slugs from list_projects', which tells the agent exactly how to obtain the required parameter and implies the workflow of listing projects first. It does however not explicitly state when not to use this tool or contrast with other siblings like get_post or search_ssite, so it stops 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.
get_postget postAInspect
Returns the full text of one in-site note by slug. Substack essays live on Substack; for those this returns the external URL to read instead. Get slugs from list_writing.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The post slug, as returned by list_writing. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses a significant non-obvious behavior: Substack essays are not returned as full text but as an external URL. However, it does not mention error behavior, missing slugs, or the exact response format beyond the text/URL distinction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences with no filler. The main return behavior is front-loaded, the Substack exception is clearly explained, and the source for the slug is pointed to. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description covers the essential input source and the key behavioral deviation. It could go further on failure modes or response structure, but the core calling context is complete enough for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the slug parameter. The description reinforces that slugs come from list_writing, but this adds little beyond the schema's existing parameter description. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Returns') and a clear resource ('one in-site note by slug'), and immediately distinguishes itself from Substack-hosted essays and from sibling list_writing. This makes its scope unmistakable even 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: when you have a slug from list_writing. It also explains the important conditional behavior for Substack essays. It does not explicitly enumerate when not to use this tool versus sibling retrieval tools, but the context is strong enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_profileget profileAInspect
Returns who Khalid Ibne Hasan is: name, role, organization, location, links, and a short professional bio. Use this first to ground any answer about Khalid.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of explaining behavior. It clearly indicates this is a read-only retrieval tool that returns a fixed set of profile fields, and the guidance to use it first reinforces its role as a stable reference. For a zero-parameter getter, this is adequate transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The return content is front-loaded, and the usage directive is a single actionable clause. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter profile tool with no output schema, the description is complete: it identifies the entity, enumerates expected fields, and tells the agent when to invoke it. There is no missing information needed to call or interpret this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The schema has no properties to document, and the description compensates by listing what the returned profile contains.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Returns'), a specific resource (Khalid Ibne Hasan's profile), and enumerates the exact content (name, role, organization, location, links, bio). This clearly separates it from sibling tools that return projects, posts, case studies, or resumes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance: 'Use this first to ground any answer about Khalid.' This establishes a clear starting point for the agent. It does not explicitly name alternatives or exclusion cases, but for a personal-profile tool the usage context is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_resumeget resumeAInspect
Returns Khalid Ibne Hasan's structured resume: work experience, education, skill groups, and the URL of the downloadable PDF version.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. 'Returns... structured resume' clearly conveys a read-only retrieval operation with no side effects or prerequisites, and it discloses what the response contains. This is sufficient for a simple 0-parameter tool, though it does not mention error behavior or external fetching nuance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that states the verb, resource, and key content in order. Every word earns its place, with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a zero-parameter retrieval tool with no output schema. The description enumerates what the resume contains and the PDF URL, giving an agent enough to know whether to call it and what to expect in the response. No critical gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the rubric establishes a baseline of 4 for such tools. The description adds no parameter details because none exist; nothing further is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Returns' with a named resource (Khalid Ibne Hasan's structured resume) and enumerates the major content categories: work experience, education, skill groups, and PDF URL. This makes the tool's purpose unambiguous and distinct from sibling tools like get_profile or get_case_study.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or exclusion guidance is given, but the description's specificity implies usage when an agent needs Khalid Ibne Hasan's resume or its PDF link. Since this is a zero-parameter fetch tool, the context is clear enough without routing statements, though differentiating it from get_profile would have been slightly stronger.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectslist projectsAInspect
Lists Khalid's shipped case studies (products built at Keyin College) and his side projects (the Lab). Each entry includes a slug usable with get_case_study, a summary, and tags.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the output shape: each entry includes a slug usable with get_case_study, a summary, and tags. It does not explicitly state read-only behavior, but 'Lists' and the absence of mutation language make that reasonably clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence front-loads the action and scope, then adds only the essential return details: slug, summary, and tags. Every clause earns its place with no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter list operation, the description is nearly complete: it identifies what is listed and what each entry contains. It does not mention ordering, pagination, or a full return type, but those are not essential given the tool's simplicity and the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the 100% schema coverage makes parameter semantics trivially complete. The 0-parameter baseline applies, and the description correctly says nothing about parameters because there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Lists') and a precise resource: Khalid's shipped case studies at Keyin College and his side projects (the Lab). This clearly distinguishes the tool from siblings like list_writing, and the mention of get_case_study ties it to a related workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool—when a caller needs a list of Khalid's projects—but it does not explicitly discuss alternatives or when not to use it. The context is clear enough to infer selection, 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_writinglist writingAInspect
Lists Khalid's writing: in-site notes and Substack essays, merged and sorted newest first. Each entry has a title, source, date, and URL.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It discloses that results are merged from two sources, sorted newest first, and that each entry includes title, source, date, and URL. This provides solid behavioral transparency for a simple read-only listing tool with no parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the main action, and every clause adds information: sources, merging behavior, sorting, and entry fields. There is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with no output schema, the description is complete. It states what is listed, the sources, ordering, and the exact fields of each returned entry, leaving no critical ambiguity for an agent deciding to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema coverage because the schema is empty, so the baseline is 4. The description adds useful context about what the returned entries contain, which is not parameter-related but compensates for the absence of an output schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Lists') and a specific resource ('Khalid's writing'), then clarifies the content sources and output shape. It is clearly distinguishable from siblings like get_post or search_site because it describes a merged, sorted listing operation rather than retrieval or search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: this tool is for obtaining a merged list of Khalid's writing, ordered newest first. It does not explicitly mention alternatives or exclusions, but the intended use case is unambiguous given the no-argument signature and the detailed scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_sitesearch siteAInspect
Searches all of khalidibnehasan.com (case studies, side projects, writing, profile pages) for a phrase and returns matching items with URLs and snippets.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The word or phrase to search for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the transparency burden and does well: it states the search scope and the return value ('matching items with URLs and snippets'). The verb 'Searches' appropriately conveys a read-only operation and implies no destructive side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One focused sentence front-loads the action and resource, lists the searched categories, and states the output. There is no filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple one-parameter tool with no output schema, and the description supplies the essential missing context: what is searched and what a successful call returns. Nothing critical is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for the single 'query' parameter. The description's 'phrase' aligns with the schema's 'word or phrase' but adds no additional semantic value beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Searches') and names the exact resource ('all of khalidibnehasan.com') with the content categories searched. This clearly differentiates it from sibling tools that retrieve or list specific content types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: this is the tool for finding a phrase anywhere on the site, across case studies, side projects, writing, and profile pages. It does not explicitly name sibling alternatives or provide when-not-to-use guidance, but the scope is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user or an account that owns the GitHub organization, then choose Claim with GitHub.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
An interactive portfolio built for AI conversations. Browse work, services, and book calls.
Read-only access to Sigao Li's profile, CV and case studies. Bilingual (EN/ZH).
Public portfolio MCP for resume, services, availability, project evidence, and introductions.
Turn a resume into a portfolio website, look up published profiles, and ask about Skillfolio.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceExposes personal portfolio data as tools for Claude to answer questions about the developer, including profile, skills, experience, projects, and contact information.
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to discover and retrieve professional portfolio information including profile, experience, skills, projects, and contact details through MCP tools.
- AlicenseAqualityCmaintenanceEnables searching and retrieving portfolio data including experience, skills, and contact information through natural language queries.5MIT
- AlicenseNot gradedqualityDmaintenanceExposes a public, read-only professional profile with tools to search resume evidence, fetch curated links, and generate career briefs for LLM agents.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool targets a distinct resource and action: profile, resume, availability, projects, writing, case study detail, post detail, site search, and persona Q&A. The only potentially overlapping pair (list_projects/get_case_study and list_writing/get_post) follows a clear list-then-get pattern, so an agent can easily distinguish them.
Tool names follow a consistent verb_noun pattern: get_*, list_*, ask_khalid, and search_site. All are lowercase with underscores and use clear, predictable verbs that match their purpose.
Nine tools is well-scoped for a personal portfolio server. Each tool covers a meaningful aspect of the site's content or interaction, and none feel redundant or superfluous.
The surface covers the full portfolio experience: profile, resume, availability/contact, project listings with deep dives, writing listings with content retrieval, and whole-site search. No obvious dead ends or missing operations for the stated purpose.