Skip to main content
Glama

get-user-profile

Retrieve LeetCode user profile data by providing a username to access contest history, problem statistics, and ranking information.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
usernameYesLeetCode username

Implementation Reference

  • The handler function that implements the core logic of the 'get-user-profile' tool: fetches the LeetCode user profile and returns it as formatted JSON or an error message.
    async ({ username }) => {
      try {
        const data = await leetcodeService.fetchUserProfile(username);
        return {
          content: [{ 
            type: "text", 
            text: JSON.stringify(data, null, 2)
          }]
        };
      } catch (error: unknown) {
        const errorMessage = error instanceof Error ? error.message : String(error);
        return {
          content: [{ type: "text", text: `Error: ${errorMessage}` }],
          isError: true
        };
      }
  • Input schema definition using Zod, specifying the required 'username' parameter.
    {
      username: z.string().describe("LeetCode username")
    },
  • Registration of the 'get-user-profile' tool on the MCP server, including schema and handler.
    server.tool(
      "get-user-profile",
      {
        username: z.string().describe("LeetCode username")
      },
      async ({ username }) => {
        try {
          const data = await leetcodeService.fetchUserProfile(username);
          return {
            content: [{ 
              type: "text", 
              text: JSON.stringify(data, null, 2)
            }]
          };
        } catch (error: unknown) {
          const errorMessage = error instanceof Error ? error.message : String(error);
          return {
            content: [{ type: "text", text: `Error: ${errorMessage}` }],
            isError: true
          };
        }
      }
    );
  • Supporting method in LeetCodeService that executes the GraphQL query to retrieve user profile data.
    /**
     * Fetch user profile data
     */
    async fetchUserProfile(username: string) {
      return this.executeQuery(userProfileQuery, { username });
    }
  • GraphQL query used to fetch comprehensive user profile information from LeetCode API.
    export const userProfileQuery = `
      query getUserProfile($username: String!) {
        matchedUser(username: $username) {
          username
          submitStats: submitStatsGlobal {
            acSubmissionNum {
              difficulty
              count
              submissions
            }
            totalSubmissionNum {
              difficulty
              count
              submissions
            }
          }
          profile {
            ranking
            reputation
            starRating
            realName
            aboutMe
            userAvatar
            skillTags
            country
            company
            school
            websites
            countryName
            location
            contestCount
            asciiCode
            socialAccounts
            skillSet {
              langLevels {
                langName
                langVerboseName
                level
              }
              topics {
                slug
                name
                level
              }
            }
          }
        }
      }
    `;

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/doggybee/mcp-server-leetcode'

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