Skip to main content
Glama

semantic_search_requests

Search for specific requests within a page URL using semantic querying to retrieve the top 10 relevant results. Ideal for analyzing and extracting targeted browser interactions.

Instructions

Semantically search for requests that occurred within a page URL. Returns the top 10 results.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
page_urlYesThe page within which to search for requests
queryYesYour search request. Make this specific and detailed to get the best results

Implementation Reference

  • The main handler function that performs semantic search on requests using embeddings and cosine similarity, returning top 10 matches.
    export async function semanticSearchRequestsSentTransformer(
      query: string,
      requests: Array<RequestRecord>,
      pipeline: FeatureExtractionPipeline
    ): Promise<Array<RequestRecord & { similarity: number }>> {
      // Get embedding for the query
      const queryEmbedding = await getEmbeddingSentTransformer(query, pipeline);
    
      // Calculate cosine similarity scores for all requests
      const scoredRequests = requests.map((request) => {
        // Compute cosine similarity between query and request embeddings
        const similarity = cosineSimilarity(queryEmbedding, request.embedding);
        return { ...request, similarity };
      });
    
      // Sort by similarity score (highest first) and take top 10
      return scoredRequests
        .sort((a, b) => b.similarity - a.similarity)
        .slice(0, 10);
    }
  • index.ts:70-88 (registration)
    Registration of the 'semantic_search_requests' tool in the TOOLS array, including name, description, and input schema.
      name: "semantic_search_requests",
      description:
        "Semantically search for requests that occurred within a page URL. Returns the top 10 results.",
      inputSchema: {
        type: "object",
        properties: {
          query: {
            type: "string",
            description:
              "Your search request. Make this specific and detailed to get the best results",
          },
          page_url: {
            type: "string",
            description: "The page within which to search for requests",
          },
        },
        required: ["query", "page_url"],
      },
    },
  • Tool dispatch handler in the main switch that calls the semantic search transformer function.
    case "semantic_search_requests": {
      if (!pipeline) {
        return {
          content: [{ type: "text", text: "Model not defined" }],
          isError: true,
        };
      }
      const searchResults = await semanticSearchRequestsSentTransformer(
        args.query,
        requests.get(args.page_url),
        pipeline
      );
      const withoutEmbedding = searchResults.map(
        ({ embedding, similarity, ...rest }) => rest
      );
      return {
        content: [
          { type: "text", text: JSON.stringify(withoutEmbedding, null, 2) },
        ],
        isError: false,
      };
    }
  • Helper function to compute cosine similarity used in semantic search.
    function cosineSimilarity(a: number[], b: number[]): number {
      const dotProduct = a.reduce((sum, val, i) => sum + val * b[i], 0);
      const magnitudeA = Math.sqrt(a.reduce((sum, val) => sum + val * val, 0));
      const magnitudeB = Math.sqrt(b.reduce((sum, val) => sum + val * val, 0));
      return dotProduct / (magnitudeA * magnitudeB);
    }
  • Helper function to get embeddings using the transformer pipeline.
    export async function getEmbeddingSentTransformer(
      text: string,
      pipeline: FeatureExtractionPipeline
    ): Promise<number[]> {
      const embedding = await pipeline(text);
      return Array.from(embedding.data);
    }

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

Related Tools

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/jwaldor/mcp-scrape-copilot'

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