SearchAPI MCP Server
SearchAPI.site - MCP 서버
이 프로젝트는 SearchAPI.site를 통해 AI 어시스턴트를 외부 데이터 소스(Google, Bing 등)에 연결하는 MCP(Model Context Protocol) 서버를 제공합니다.
사용 가능한 플랫폼
[x] Google - 웹 검색
[x] Google - 이미지 검색
[x] Google - YouTube 검색
[ ] Google - 지도 검색
[x] Bing - 웹 검색
[ ] Bing - 이미지 검색
[ ] 레딧
[ ] X/트위터
[ ] 페이스북 검색
[ ] 페이스북 그룹 검색
[ ] 인스타그램
[ ] 틱톡
SearchAPI.site
여기에서 검색 API 키를 생성하세요
Related MCP server: WebSearch-MCP
지원되는 전송
[x] "stdio" 전송 - CLI 사용을 위한 기본 전송
[x]"스트리밍 가능한 HTTP" 전송 - 웹 기반 클라이언트용
[ ]
Bearer <token>포함한 auth("Authorization" 헤더) 구현
[ ]
"sse" 운송(더 이상 사용되지 않음)[ ] 테스트 작성
사용 방법
CLI
지엑스피1
MCP 설정
stdio 전송을 통한 로컬 구성의 경우:
{
"mcpServers": {
"searchapi": {
"command": "node",
"args": ["/path/to/searchapi-mcp-server/dist/index.js"],
"transportType": "stdio"
}
}
}원격 HTTP 구성의 경우:
{
"mcpServers": {
"searchapi": {
"type": "http",
"url": "http://mcp.searchapi.site/mcp"
}
}
}HTTP 전송을 위한 환경 변수:
다음 환경 변수를 사용하여 HTTP 서버를 구성할 수 있습니다.
MCP_HTTP_HOST: 바인딩할 호스트(기본값:127.0.0.1)MCP_HTTP_PORT: 수신할 포트(기본값:8080)MCP_HTTP_PATH: 엔드포인트 경로(기본값:/mcp)
소스 코드 개요
MCP란 무엇인가요?
MCP(Model Context Protocol)는 AI 시스템이 외부 도구 및 데이터 소스와 안전하고 상황에 맞게 연결할 수 있도록 하는 개방형 표준입니다.
이 보일러플레이트는 모든 API나 데이터 소스에 대한 사용자 정의 MCP 서버를 구축하기 위해 확장 가능한 깔끔하고 계층화된 아키텍처로 MCP 사양을 구현합니다.
왜 이 보일러플레이트를 사용해야 하나요?
프로덕션 준비 아키텍처 : CLI, 도구, 컨트롤러 및 서비스를 명확하게 구분하여 게시된 MCP 서버에서 사용되는 것과 동일한 패턴을 따릅니다.
유형 안전성 : 개발자 경험, 코드 품질, 유지 관리 용이성을 개선하기 위해 TypeScript로 구축되었습니다.
실제 예제 : CLI에서 API 통합까지의 전체 패턴을 보여주는 완전히 구현된 IP 조회 도구가 포함되어 있습니다.
테스트 프레임워크 : 커버리지 보고를 포함하여 단위 및 CLI 통합 테스트를 위한 테스트 인프라가 제공됩니다.
개발 도구 : MCP 서버 개발을 위해 사전 구성된 ESLint, Prettier, TypeScript 및 기타 고품질 도구가 포함되어 있습니다.
시작하기
필수 조건
Node.js (>=18.x): 다운로드
Git : 버전 제어를 위해
1단계: 복제 및 설치
# Clone the repository
git clone https://github.com/mrgoonie/searchapi-mcp-server.git
cd searchapi-mcp-server
# Install dependencies
npm install2단계: 개발 서버 실행
stdio 전송(기본값)을 사용하여 개발 모드로 서버를 시작합니다.
npm run dev:server또는 Streamable HTTP 전송을 사용하면:
npm run dev:server:http이렇게 하면 핫 리로딩으로 MCP 서버가 시작되고 http://localhost:5173 에서 MCP 검사기가 활성화됩니다.
⚙️ 포트 6277에서 수신 중인 프록시 서버 🔍 MCP Inspector가 http://127.0.0.1:6274 에서 실행 중입니다.
HTTP 전송을 사용하는 경우 서버는 기본적으로 http://127.0.0.1:8080/mcp 에서 사용할 수 있습니다.
3단계: 예제 도구 테스트
CLI에서 예제 IP 조회 도구를 실행합니다.
# Using CLI in development mode
npm run dev:cli -- search-google --query "your search query" --api-key "your-api-key"
# Or with a specific IP
npm run dev:cli -- search-google --query "your search query" --api-key "your-api-key" --limit 10 --offset 0 --sort "date:d" --from_date "2023-01-01" --to_date "2023-12-31"건축학
이 보일러플레이트는 관심사를 분리하고 유지 관리를 용이하게 하는 깔끔하고 계층화된 아키텍처 패턴을 따릅니다.
프로젝트 구조
src/
├── cli/ # Command-line interfaces
├── controllers/ # Business logic
├── resources/ # MCP resources: expose data and content from your servers to LLMs
├── services/ # External API interactions
├── tools/ # MCP tool definitions
├── types/ # Type definitions
├── utils/ # Shared utilities
└── index.ts # Entry point계층 및 책임
CLI 계층( src/cli/*.cli.ts )
목적 : 인수를 구문 분석하고 컨트롤러를 호출하는 명령줄 인터페이스를 정의합니다.
이름 지정 : 파일 이름은
<feature>.cli.ts여야 합니다.테스트 :
<feature>.cli.test.ts의 CLI 통합 테스트
도구 레이어( src/tools/*.tool.ts )
목적 : AI 어시스턴트에 대한 스키마와 설명을 포함하는 MCP 도구 정의
이름 지정 : 파일 이름은
<feature>.tool.ts이고 유형은<feature>.types.ts입니다.패턴 : 각 도구는 인수 검증을 위해 zod를 사용해야 합니다.
컨트롤러 레이어( src/controllers/*.controller.ts )
목적 : 비즈니스 로직 구현, 오류 처리 및 응답 형식 지정
이름 지정 : 파일 이름은
<feature>.controller.ts여야 합니다.패턴 : 표준화된
ControllerResponse객체를 반환해야 함
서비스 계층( src/services/*.service.ts )
목적 : 외부 API 또는 데이터 소스와 상호 작용
이름 지정 : 파일 이름은
<feature>.service.ts여야 합니다.패턴 : 최소한의 논리를 갖춘 순수 API 상호 작용
유틸리티 레이어( src/utils/*.util.ts )
목적 : 애플리케이션 전반에 걸쳐 공유 기능 제공
주요 유틸리티 :
logger.util.ts: 구조화된 로깅error.util.ts: 오류 처리 및 표준화formatter.util.ts: 마크다운 서식 도우미
개발 가이드
개발 스크립트
# Start server in development mode (hot-reload & inspector)
npm run dev:server
# Run CLI in development mode
npm run dev:cli -- [command] [args]
# Build the project
npm run build
# Start server in production mode
npm run start:server
# Run CLI in production mode
npm run start:cli -- [command] [args]테스트
# Run all tests
npm test
# Run specific tests
npm test -- src/path/to/test.ts
# Generate test coverage report
npm run test:coverage평가하다
evals 패키지는 index.ts 파일을 실행하는 mcp 클라이언트를 로드하므로 테스트 사이에 다시 빌드할 필요가 없습니다. npx 명령 앞에 접두사를 붙여 환경 변수를 로드할 수 있습니다. 전체 문서는 여기에서 확인할 수 있습니다.
OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/tools/searchapi.tool.ts코드 품질
# Lint code
npm run lint
# Format code with Prettier
npm run format
# Check types
npm run typecheck사용자 정의 도구 구축
서버에 자신의 도구를 추가하려면 다음 단계를 따르세요.
1. 서비스 계층 정의
외부 API와 상호 작용하려면 src/services/ 에 새 서비스를 만드세요.
// src/services/example.service.ts
import { Logger } from '../utils/logger.util.js';
const logger = Logger.forContext('services/example.service.ts');
export async function getData(param: string): Promise<any> {
logger.debug('Getting data', { param });
// API interaction code here
return { result: 'example data' };
}2. 컨트롤러 생성
비즈니스 로직을 처리하기 위해 src/controllers/ 에 컨트롤러를 추가합니다.
// src/controllers/example.controller.ts
import { Logger } from '../utils/logger.util.js';
import * as exampleService from '../services/example.service.js';
import { formatMarkdown } from '../utils/formatter.util.js';
import { handleControllerError } from '../utils/error-handler.util.js';
import { ControllerResponse } from '../types/common.types.js';
const logger = Logger.forContext('controllers/example.controller.ts');
export interface GetDataOptions {
param?: string;
}
export async function getData(
options: GetDataOptions = {},
): Promise<ControllerResponse> {
try {
logger.debug('Getting data with options', options);
const data = await exampleService.getData(options.param || 'default');
const content = formatMarkdown(data);
return { content };
} catch (error) {
throw handleControllerError(error, {
entityType: 'ExampleData',
operation: 'getData',
source: 'controllers/example.controller.ts',
});
}
}3. MCP 도구 구현
src/tools/ 에 도구 정의를 생성합니다.
// src/tools/example.tool.ts
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { z } from 'zod';
import { Logger } from '../utils/logger.util.js';
import { formatErrorForMcpTool } from '../utils/error.util.js';
import * as exampleController from '../controllers/example.controller.js';
const logger = Logger.forContext('tools/example.tool.ts');
const GetDataArgs = z.object({
param: z.string().optional().describe('Optional parameter'),
});
type GetDataArgsType = z.infer<typeof GetDataArgs>;
async function handleGetData(args: GetDataArgsType) {
try {
logger.debug('Tool get_data called', args);
const result = await exampleController.getData({
param: args.param,
});
return {
content: [{ type: 'text' as const, text: result.content }],
};
} catch (error) {
logger.error('Tool get_data failed', error);
return formatErrorForMcpTool(error);
}
}
export function register(server: McpServer) {
server.tool(
'get_data',
`Gets data from the example API, optionally using \`param\`.
Use this to fetch example data. Returns formatted data as Markdown.`,
GetDataArgs.shape,
handleGetData,
);
}4. CLI 지원 추가
src/cli/ 에 CLI 명령을 생성합니다.
// src/cli/example.cli.ts
import { program } from 'commander';
import { Logger } from '../utils/logger.util.js';
import * as exampleController from '../controllers/example.controller.js';
import { handleCliError } from '../utils/error-handler.util.js';
const logger = Logger.forContext('cli/example.cli.ts');
program
.command('get-data')
.description('Get example data')
.option('--param <value>', 'Optional parameter')
.action(async (options) => {
try {
logger.debug('CLI get-data called', options);
const result = await exampleController.getData({
param: options.param,
});
console.log(result.content);
} catch (error) {
handleCliError(error);
}
});5. 구성 요소 등록
새 구성 요소를 등록하려면 진입점을 업데이트하세요.
// In src/cli/index.ts
import '../cli/example.cli.js';
// In src/index.ts (for the tool)
import exampleTool from './tools/example.tool.js';
// Then in registerTools function:
exampleTool.register(server);디버깅 도구
MCP 검사관
시각적 MCP 검사기에 액세스하여 도구를 테스트하고 요청/응답 세부 정보를 확인하세요.
npm run dev:server브라우저에서 http://localhost:5173을 엽니다.
UI에서 직접 도구를 테스트하고 로그를 확인하세요
서버 로그
개발을 위한 디버그 로그 활성화:
# Set environment variable
DEBUG=true npm run dev:server
# Or configure in ~/.mcp/configs.jsonMCP 서버 게시
사용자 정의 MCP 서버를 게시할 준비가 되면:
package.json을 귀하의 세부 정보로 업데이트하세요
도구 설명서로 README.md를 업데이트하세요.
프로젝트 빌드:
npm run build프로덕션 빌드 테스트:
npm run start:servernpm에 게시:
npm publish
특허
{
"searchapi": {
"environments": {
"DEBUG": "true",
"SEARCHAPI_API_KEY": "value"
}
}
}참고: 이전 버전과의 호환성을 위해, 서버는 searchapi 키를 찾을 수 없는 경우 전체 패키지 이름( searchapi-mcp-server ) 또는 범위가 지정되지 않은 패키지 이름( searchapi-mcp-server )으로 구성된 구성도 인식합니다. 하지만 새로운 구성에는 짧은 searchapi 키를 사용하는 것이 좋습니다.
Available Tools
3 toolssearch_googleC
Performs a Google search using SearchAPI.site. Requires a search "query" string, can be able to search multiple keywords that separated by commas. Returns formatted search results including titles, snippets, and links.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The search query to perform | |
| limit | No | Maximum number of results to return (1-100) | |
| offset | No | Offset for pagination | |
| sort | No | Sort order (e.g., "date:d" for newest first) | |
| from_date | No | Start date for filtering results (format: YYYY-MM-DD) | |
| to_date | No | End date for filtering results (format: YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool 'Returns formatted search results including titles, snippets, and links,' which gives some output context, but lacks critical behavioral details like rate limits, authentication requirements, error handling, pagination behavior (beyond the offset parameter), or whether this is a read-only operation. The mention of 'SearchAPI.site' hints at a third-party service but doesn't explain implications.
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 reasonably concise with three sentences, but it's not optimally front-loaded. The first sentence states the purpose, but the second sentence awkwardly mixes parameter guidance ('Requires a search "query" string') with feature description ('can be able to search multiple keywords'). The third sentence covers return values. Some redundancy exists (e.g., 'query' is mentioned twice), and the structure could be tighter for better clarity.
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?
Given no annotations, no output schema, and 6 parameters (though well-documented in schema), the description is incomplete. It lacks behavioral context (e.g., rate limits, auth), doesn't explain the relationship with sibling tools, and provides minimal guidance on usage. For a search tool with multiple parameters and no structured output definition, more contextual information would be helpful for an AI agent to use it effectively.
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%, so the schema already documents all 6 parameters thoroughly. The description adds minimal value beyond the schema: it mentions the query parameter and that it 'can be able to search multiple keywords that separated by commas' (though awkwardly phrased), but doesn't explain other parameters like limit, offset, sort, from_date, or to_date. Baseline 3 is appropriate when schema does the heavy lifting.
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 clearly states the tool 'Performs a Google search using SearchAPI.site' with a specific verb ('Performs') and resource ('Google search'), distinguishing it from sibling tools like search_google_images and search_youtube by focusing on general web search. However, it doesn't explicitly contrast with siblings beyond the different search 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 provides no guidance on when to use this tool versus alternatives like search_google_images or search_youtube. It mentions the tool can search multiple keywords separated by commas, but this is more about parameter usage than contextual guidance. No explicit when/when-not instructions or alternative recommendations are included.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_google_imagesB
Performs a Google image search using SearchAPI.site. Requires a search query and your SearchAPI.site API key. Returns formatted image search results including titles, thumbnails, and source links.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The image search query to perform | |
| limit | No | Maximum number of results to return (1-100) | |
| offset | No | Offset for pagination | |
| sort | No | Sort order (e.g., "date:d" for newest first) | |
| from_date | No | Start date for filtering results (format: YYYY-MM-DD) | |
| to_date | No | End date for filtering results (format: YYYY-MM-DD) |
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 mentions the API key requirement (authentication need) and describes the return format ('formatted image search results including titles, thumbnails, and source links'), which adds value beyond the input schema. However, it doesn't mention rate limits, error conditions, or other behavioral traits like whether results are cached or real-time.
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 appropriately sized with three concise sentences that each add value: what it does, what it requires, and what it returns. It's front-loaded with the core purpose. There's minimal waste, though it could be slightly more structured with bullet points for the three key pieces of information.
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 tool with 6 parameters, 100% schema coverage, but no annotations and no output schema, the description provides adequate but incomplete context. It covers the purpose, authentication requirement, and return format, but doesn't address error handling, rate limits, or provide examples. The absence of an output schema means the description's mention of return format is helpful but could be more detailed.
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%, so the schema already documents all 6 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema - it mentions 'search query' and 'API key' but doesn't explain parameter interactions, defaults, or usage examples. Baseline 3 is appropriate when the schema does the heavy lifting.
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 clearly states the tool 'performs a Google image search using SearchAPI.site' which is a specific verb+resource combination. It distinguishes itself from sibling tools like 'search_google' and 'search_youtube' by specifying it's for images, though it doesn't explicitly contrast with them in the description text itself.
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 mentions the requirement for a SearchAPI.site API key, which provides some usage context. However, it offers no guidance on when to use this tool versus the sibling tools (search_google, search_youtube) or any alternatives. There's no explicit 'when' or 'when not' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_youtubeB
Performs a YouTube search using SearchAPI.site. Requires a search query and your SearchAPI.site API key. Returns formatted YouTube search results including video titles, thumbnails, descriptions, and links. Supports optional parameters for pagination, sorting, filtering by date and duration.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The YouTube search query to perform | |
| maxResults | No | Maximum number of results to return (1-50) | |
| pageToken | No | Token for pagination to get next/previous page of results | |
| order | No | Sort order for results | |
| publishedAfter | No | Number of days to filter videos from | |
| videoDuration | No | Filter by video duration |
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 mentions the API key requirement (auth needs) and describes the return format (video titles, thumbnails, descriptions, links), which adds value beyond the input schema. However, it doesn't cover rate limits, error handling, or other operational constraints.
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 appropriately sized with four sentences that each add value: purpose, requirements, returns, and optional features. It's front-loaded with core functionality. Minor improvement could come from tighter phrasing, but there's no wasted content.
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 search tool with 6 parameters, 100% schema coverage, and no output schema, the description provides adequate context on what the tool does and returns. However, without annotations or output schema, it lacks details on response structure, error cases, or performance characteristics that would help an agent use it effectively.
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%, so the schema already documents all 6 parameters thoroughly. The description adds minimal value by listing optional parameters (pagination, sorting, filtering by date and duration) but doesn't provide additional syntax, format, or usage details beyond what's in the schema. This meets the baseline for high schema coverage.
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 clearly states the specific action ('Performs a YouTube search') and resource ('using SearchAPI.site'), distinguishing it from sibling tools like search_google and search_google_images by specifying YouTube as the search target. It provides a complete verb+resource+scope combination.
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 mentions when to use this tool (for YouTube searches) but provides no guidance on when to choose it versus the sibling tools search_google or search_google_images. There's no explicit comparison or exclusion criteria, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
- First observed
search_google - First observed
search_google_images - First observed
search_youtube
TDQS
Each tool has a clearly distinct purpose targeting a specific search type: Google web search, Google image search, and YouTube search. The descriptions explicitly differentiate them by platform and result format, with no overlap in functionality that could cause confusion.
All tools follow a consistent verb_noun pattern with 'search_' prefix followed by the target platform (google, google_images, youtube). This predictable naming scheme makes it easy for agents to understand and select the appropriate tool.
Three tools is reasonable for a search API server, covering major search platforms. However, it feels slightly thin—adding tools for other platforms (like news or shopping search) could make it more comprehensive, but the current count is appropriate for the core functionality.
The toolset covers the essential search operations for Google web, images, and YouTube, which aligns well with the server's purpose. A minor gap is the lack of a general search tool that could handle other platforms or unified search, but agents can work effectively with the provided tools.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Live AI-native web search with citations. One tool for every MCP client. Flat per-request pricing.
Scrape, crawl and search the web for AI agents via MCP.
Connect MCP clients to 2,000+ AI models without managing provider API keys.
Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.
Related MCP Servers
- FlicenseBqualityDmaintenanceImplements the Model Context Protocol (MCP) to provide AI models with a standardized interface for connecting to external data sources and tools like file systems, databases, or APIs.1153-
- AlicenseBqualityCmaintenanceA Model Context Protocol server that enables AI assistants to perform real-time web searches, retrieving up-to-date information from the internet via a Crawler API.16240ISC
- AlicenseDqualityDmaintenanceModel Context Protocol server that enables AI assistants like Claude to access searchapi.io API for searching Google Maps, flights, hotels, and other web information.910MIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that exposes powerful web search and scraping tools to AI agents and MCP-compatible clients.Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/mrgoonie/searchapi-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server