Skip to main content
Glama
timjrobinson

Freesound MCP Server

by timjrobinson

get_user_sounds

Retrieve audio samples uploaded by a specific Freesound user. Use this tool to access user-generated sound collections by providing their username, with optional pagination controls.

Instructions

Get sounds uploaded by a specific user

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
usernameYesThe username of the user
pageNoPage number (default: 1)
page_sizeNoNumber of results per page (default: 15)

Implementation Reference

  • The core handler function that performs the HTTP request to Freesound API to retrieve paginated list of sounds uploaded by a specific user.
    async getUserSounds(
      username: string,
      params?: PaginationParams
    ): Promise<PaginatedResults<Sound>> {
      const response = await this.axiosInstance.get(
        `/users/${username}/sounds/`,
        {
          params: {
            page: params?.page || 1,
            page_size: params?.page_size || 15,
          },
        }
      );
      return response.data;
    }
  • src/index.ts:146-167 (registration)
    Registers the tool in the ListTools response, including name, description, and input schema.
    {
      name: "get_user_sounds",
      description: "Get sounds uploaded by a specific user",
      inputSchema: {
        type: "object",
        properties: {
          username: {
            type: "string",
            description: "The username of the user",
          },
          page: {
            type: "number",
            description: "Page number (default: 1)",
          },
          page_size: {
            type: "number",
            description: "Number of results per page (default: 15)",
          },
        },
        required: ["username"],
      },
    },
  • Defines the input schema for the get_user_sounds tool, specifying parameters like username (required), page, and page_size.
    inputSchema: {
      type: "object",
      properties: {
        username: {
          type: "string",
          description: "The username of the user",
        },
        page: {
          type: "number",
          description: "Page number (default: 1)",
        },
        page_size: {
          type: "number",
          description: "Number of results per page (default: 15)",
        },
      },
      required: ["username"],
    },
  • MCP server handler for CallToolRequest that dispatches to FreesoundClient.getUserSounds and formats the response.
    case "get_user_sounds": {
      const sounds = await freesoundClient.getUserSounds(
        args.username as string,
        {
          page: args.page as number | undefined,
          page_size: args.page_size as number | undefined,
        }
      );
      return {
        content: [
          {
            type: "text",
            text: JSON.stringify(sounds, null, 2),
          },
        ],
      };
    }

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/timjrobinson/FreesoundMCPServer'

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