Skip to main content
Glama

get_profile

Read-only

Fetch a single social profile by (platform, username).

Always use this first when the user gives an exact handle on a specific platform (for example "@niickjackson on Instagram") and you need the full profile: bio, follower/engagement metrics, recent activity, growth, and the canonical creator ID. Pass exactly the username they typed without the @ sign — case-insensitive matching is handled server-side. Do not use search_creators for an exact platform+username lookup.

Examples:

  • User: "Pull @niickjackson on Instagram" -> use this tool with platform "instagram" and username "niickjackson".

  • User: "Tell me about instagram.com/niickjackson" -> parse the platform and username, then use this tool.

  • User: "Is @niickjackson a fit for Pixel?" -> use this tool first, then call get_posts and/or match_creators if the task needs content or fit analysis.

Returns the profile record plus the underlying creator record. If you already have a creator UUID, use get_creator instead. For batch lookups by handle, use lookup_profiles.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "platform": "<platform>",
      "username": "<username>",
      "context": "<context>",
      "llm_model": "<llm_model>"
    },
    "name": "get_profile"
  }
}

Input Schema

NameRequiredDescriptionDefault
contextYesExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
platformYesSocial platform for the username.
usernameYesPublic username or handle. A leading @ is accepted.
llm_modelYesThe exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" — never guess.
conversation_idNoPass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.

Output Schema

NameRequiredDescriptionDefault
okNo
dataNo
countNo
resultsNo
has_moreNo
not_foundNo
next_cursorNo
suggested_followupsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / context
      Added value: +{
      +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
      +  "type": "string"
      +}
    • addedInput schema / properties / conversation_id
      Added value: +{
      +  "description": "Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.",
      +  "type": "string"
      +}
    • addedInput schema / properties / llm_model
      Added value: +{
      +  "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "platform",
      -  "username"
      -]New value: +[
      +  "platform",
      +  "username",
      +  "context",
      +  "llm_model"
      +]
  2. Changed2 schema fields changed
    • removedOutput schema / properties / next_cursor / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / next_cursor / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  3. Changed3 schema fields changed
    • changedInput schema / properties / username / description
      Previous value: -"Platform username or handle without the @ sign."New value: +"Public username or handle. A leading @ is accepted."
    • removedInput schema / properties / username / maxLength
      Removed value: -50
    • removedInput schema / properties / username / minLength
      Removed value: -1
  4. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint false and openWorldHint false, so safety is covered; the description adds real value beyond that by disclosing the payload (bio, follower/engagement metrics, recent activity, growth, canonical creator ID), the dual profile+creator return shape, and server-side case-insensitive matching. No permissions, rate-limit, or failure behavior is mentioned, keeping it short of a 5.

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 purpose, then usage, then examples, then routing — a logical order with each sentence carrying instruction. The three examples are slightly redundant with the prose above them and add bulk, but they resolve real parsing ambiguity.

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 5-parameter lookup tool with an output schema, the description covers entry conditions, input formatting, return contents, and the follow-on calls (get_posts, match_creators) an agent would need. Nothing required 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?

Schema coverage is 100%, so the baseline is 3; the description goes further by telling the agent to strip the @ and that matching is case-insensitive, and by explaining how to derive platform/username from a profile URL. It does not address context, llm_model or conversation_id, but those are fully documented in the schema.

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?

Opens with a specific verb and resource — "Fetch a single social profile by (platform, username)" — and immediately scopes it against the near-identical siblings get_creator and lookup_profiles. An agent can pick it out of the crowded profile/video tool list without reading 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 states when to use it (exact handle on a specific platform), when not to ("Do not use `search_creators` for an exact platform+username lookup"), and routes to alternatives by condition (get_creator for UUIDs, lookup_profiles for batch). Three worked examples cover the URL-parsing and chained-call cases.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.