Skip to main content
Glama
shomechakraborty

Scientific Tools MCP Server

Scientific Tools MCP Server

An MCP-compatible server providing high-value scientific tools for AI agents. Earn per tool call. Zero upfront capital. Fully automated.

Tools

Tool

Price/call

Description

literature_search

$0.020

PubMed + arXiv + Semantic Scholar

compound_lookup

$0.010

PubChem + ChEMBL molecular properties

gpu_spot_prices

$0.005

Live GPU spot prices across 4 providers

patent_prior_art_search

$0.050

USPTO + EPO patent databases

scientific_data

$0.003

USGS earthquakes, NASA, OpenAQ air quality

analytics

$0.001

Usage stats and revenue reporting

Related MCP server: Crossref Academic MCP Server

Quick start

# 1. Install dependencies
pip install fastapi uvicorn stripe pydantic aiohttp

# 2. Set environment variables
cp .env.example .env
# Edit .env with your keys

# 3. Run demo (no keys needed)
python main.py

# 4. Start production server
python main.py --serve

Environment variables

# Required for billing
STRIPE_SECRET_KEY=sk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...

# Stripe metered price IDs (create in Stripe dashboard)
STRIPE_PRICE_LITERATURE=price_...
STRIPE_PRICE_COMPOUND=price_...
STRIPE_PRICE_GPU=price_...
STRIPE_PRICE_PATENT=price_...
STRIPE_PRICE_SCIDATA=price_...
STRIPE_PRICE_ANALYTICS=price_...

# Optional — improves data access limits
NOAA_API_TOKEN=...        # https://www.ncdc.noaa.gov/cdo-web/token
NASA_API_KEY=...          # https://api.nasa.gov/

Deployment (VPS)

# On a fresh Ubuntu 22.04 VPS ($6/mo Hetzner)

# Install Python
sudo apt update && sudo apt install python3-pip python3-venv nginx certbot -y

# Clone and install
git clone https://github.com/yourname/mcp-scientific-tools
cd mcp-scientific-tools
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt

# Run as service
sudo nano /etc/systemd/system/mcp-server.service
# [Unit]
# Description=MCP Scientific Tools Server
# [Service]
# WorkingDirectory=/home/ubuntu/mcp-scientific-tools
# ExecStart=/home/ubuntu/mcp-scientific-tools/venv/bin/python main.py --serve
# Restart=always
# [Install]
# WantedBy=multi-user.target

sudo systemctl enable mcp-server && sudo systemctl start mcp-server

# SSL via nginx + certbot
sudo certbot --nginx -d your-domain.com

Directory submissions (one-time, ~30 minutes)

  1. mcp.sohttps://mcp.so/submit Submit: server name, endpoint URL, tool descriptions

  2. Glama.aihttps://glama.ai/mcp/servers/submit Submit: GitHub repo URL

  3. Anthropic MCP directoryhttps://github.com/modelcontextprotocol/servers Open a PR adding your server to the README

  4. GitHub topic — Add mcp-server tag to your repo Automatically discoverable by agents scanning GitHub

Stripe setup

  1. Create a Stripe account at stripe.com

  2. Create a product: "Scientific Tools MCP"

  3. For each tool, create a metered price:

    • Billing: recurring, monthly

    • Metered usage: sum of usage during period

    • Price per unit: tool's per-call rate

  4. Copy each price ID (price_...) to your .env

Agent integration example

import anthropic

client = anthropic.Anthropic()

# Add your MCP server
response = client.beta.messages.create(
    model="claude-opus-4-6",
    max_tokens=1024,
    tools=[{
        "type": "custom",
        "name": "scientific_tools",
        "description": "Scientific research tools",
        "mcp_server": {
            "url": "https://your-domain.com/mcp",
            "auth": {"type": "bearer", "token": "mcp-key-..."}
        }
    }],
    messages=[{
        "role": "user",
        "content": "Search for recent papers on CRISPR cancer therapy"
    }]
)

BY USING THIS SERVICE OR ANY API KEY ISSUED BY THIS SERVICE, YOU AGREE TO THESE TERMS, INCLUDING THE DISCLAIMER THAT THE SERVICE IS PROVIDED AS IS WITHOUT WARRANTY, DATA IS SOURCED FROM THIRD-PARTY APIS AND MAY BE INACCURATE, AND OPERATOR LIABILITY IS LIMITED TO FEES PAID IN THE PRECEDING 30 DAYS. IF YOU DO NOT AGREE, DO NOT USE THIS SERVICE OR ITS API KEYS.


1. No warranties

This service is provided "as is" and "as available" without warranty of any kind, express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, or accuracy. The service retrieves data from third-party public APIs (PubMed, PubChem, USPTO, USGS, NASA, OpenAQ, and others) over which the operator has no control. That data may be incomplete, inaccurate, outdated, or unavailable at any time without notice.

2. Not professional advice

Data and outputs provided by this service do not constitute and must not be relied upon as medical, clinical, legal, patent, financial, pharmaceutical, toxicological, or safety advice. Users requiring professional advice must consult qualified licensed professionals. The operator expressly disclaims responsibility for any decisions made based on outputs from this service.

Specifically:

  • Literature search results are not a substitute for systematic review by qualified researchers

  • Compound property data is not a substitute for laboratory analysis by qualified chemists

  • Patent search results are not a substitute for freedom-to-operate analysis by a licensed patent attorney

  • Earthquake and environmental data are not a substitute for official emergency management guidance

3. Limitation of liability

To the maximum extent permitted by applicable law, the operator's aggregate liability for any claims arising from or related to this service shall not exceed the total fees paid by the claimant in the 30 days preceding the claim. The operator shall not be liable for any indirect, incidental, consequential, or punitive damages of any kind.

4. Data sources

This service retrieves data from: PubMed/NCBI, arXiv, Semantic Scholar, PubChem, ChEMBL, USPTO, EPO/Espacenet, USGS, NASA, and OpenAQ. Each source is subject to its own terms and accuracy limitations. The operator makes no representation regarding the accuracy or completeness of data from any of these sources.

5. Acceptable use

You agree not to use this service to make clinical, medical, or safety-critical decisions without independent professional verification, to circumvent rate limits or billing mechanisms, or to engage in any activity that violates applicable laws or regulations.

6. Service availability

The operator does not guarantee any specific level of uptime, availability, or response time. The service may be interrupted, modified, suspended, or discontinued at any time with or without notice.

7. Privacy

Query parameters are processed in memory solely to fulfil each request and are not stored beyond the duration of each individual request. Usage metadata (tool name, timestamp, call volume) is retained for billing and analytics. No personally identifiable information is knowingly collected or transmitted to third parties beyond what is required for payment processing (Stripe).

8. Governing law

These terms are governed by the laws of the United States and the state in which the operator is domiciled, without regard to conflict of law provisions.


Full terms of service: https://yourdomain.com/terms

Complete legal text: see DISCLAIMER.py in this repository

Revenue projection

At 5 tools × 1,000 calls/day × $0.01 avg price = $50/day = $1,500/month

Scale levers:

  • More tools → more call volume

  • Better tools → higher per-call price

  • More agent integrations → more calls automatically

Available Tools

6 tools
analyticsA

Query usage analytics and revenue data for this MCP server. Returns call volumes, revenue, success rates, latency, and dynamic pricing recommendations.

ParametersJSON Schema
NameRequiredDescriptionDefault
report_typeNoType of analytics report to returnsummary
projection_daysNoDays to project revenue forward (for revenue_projection)

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden. It describes a query operation with no side effects, but does not explicitly state read-only behavior, authorization needs, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the tool's purpose and returns, with no wasted words. It is front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple input schema (two optional parameters) and no output schema, the description adequately explains what the tool does and what it returns. It could mention that results are specific to this MCP server, but that is inferred.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does not add new meaning beyond the schema; it mentions return types but does not elaborate on parameters.

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?

The description clearly states the tool's function: querying usage analytics and revenue data for the MCP server, and lists specific return values (call volumes, revenue, success rates, latency, dynamic pricing). This distinguishes it from sibling tools which cover different domains like compounds or GPU prices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly indicates use for analytics queries; sibling tools are in distinct domains, so context is clear. However, there is no explicit guidance on when to use or avoid this tool, nor mention of alternatives.

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

compound_lookupA

Look up chemical compound properties from PubChem and ChEMBL. Returns molecular weight, SMILES, LogP, TPSA, H-bond donors/acceptors, Lipinski rule-of-5 drug-likeness assessment, synonyms, and optionally bioactivity and clinical trial phase data.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesCompound identifier: name, CID, SMILES, InChI, or CAS number
id_typeNoType of identifier provided (default: name)name
include_bioactivityNoInclude bioactivity data from ChEMBL (slower, default: false)
propertiesNoSpecific properties to return (default: all)

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses data sources (PubChem, ChEMBL), lists returned properties, and notes that including bioactivity data is slower. This is good transparency for a read-only tool, though it does not mention rate limits or authorization requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured paragraph that front-loads the core purpose and lists key outputs efficiently. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description adequately explains what properties and data the tool returns. However, it does not describe the exact output structure or format, which would be helpful for full contextual completeness. The mention of optional bioactivity and clinical trial phase data adds necessary context.

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?

The parameter descriptions in the schema are detailed, with 100% coverage. The description adds value by explaining the output context (e.g., Lipinski rule-of-5 drug-likeness assessment, synonyms, clinical trial phase data) which is not in the schema, enriching the understanding of what the tool returns.

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?

The description clearly states the tool's purpose: looking up chemical compound properties from PubChem and ChEMBL, and lists specific outputs like molecular weight, SMILES, LogP, etc. This distinguishes it from sibling tools (e.g., literature_search, patent_prior_art_search) which focus on different domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving compound properties but does not explicitly state when to use this tool versus alternatives, nor does it provide conditions for use or exclusions. The context from sibling names suggests differentiation but is not explicit.

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

gpu_spot_pricesA

Returns live GPU spot prices across AWS, CoreWeave, Lambda Labs, and Vast.ai. Includes interruption probabilities, on-demand comparison prices, and optional 1hr/4hr price forecasts with buy/wait recommendations. Use this to find the cheapest available GPU slot for a workload.

ParametersJSON Schema
NameRequiredDescriptionDefault
gpu_typeNoGPU type to query (default: all)all
providersNoProviders to include (default: all)
max_interruption_probNoMaximum acceptable interruption probability 0.0–1.0 (default: 0.20)
include_predictionsNoInclude 1hr and 4hr price predictions (default: false)
sort_byNoSort results by this field (default: price)price

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It correctly indicates a read-only operation (returns data), mentions live prices, interruption probabilities, on-demand comparisons, and optional forecasts. This is sufficient for an agent to understand the tool's behavior, though it could be slightly more explicit about the real-time nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences: first states purpose and scope, second lists key features, third provides usage guidance. No redundant or extraneous information. Every sentence is informative and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main points: providers, interruption probabilities, comparisons, and optional predictions. No output schema exists, but the description hints at the return format (prices, etc.). A slightly more detailed account of what exactly is returned (e.g., sorted list, structured data) would improve completeness, but it is still adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100%, with each parameter described. The description adds context beyond the schema (e.g., 'optional 1hr/4hr price forecasts with buy/wait recommendations') but largely reiterates the schema. The baseline of 3 is appropriate given high schema coverage.

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?

The description clearly states it returns live GPU spot prices across multiple providers, with specific additional features (interruption probabilities, on-demand comparisons, forecasts). It ends with a clear usage directive: 'Use this to find the cheapest available GPU slot.' This distinguishes it from sibling tools like analytics or compound_lookup, which are unrelated domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool ('find the cheapest available GPU slot') but does not explicitly mention when not to use it or provide alternatives. However, the sibling tools are in very different domains (analytics, literature, patents), so the context is clear enough for an AI agent to select this tool appropriately.

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

scientific_dataA

Fetch real-time scientific data from major public APIs. Datasets: earthquakes (USGS), air_quality (OpenAQ), solar_events (NASA DONKI), nasa_apod. Supports geographic filtering by lat/lon/radius. Returns structured, agent-ready data.

ParametersJSON Schema
NameRequiredDescriptionDefault
datasetYesScientific dataset to retrieve
locationNoLocation for spatially-filtered queries (city name, lat/lon, or country code)
latitudeNoLatitude for geographic queries
longitudeNoLongitude for geographic queries
radius_kmNoSearch radius in km around lat/lon (default: 500)
date_fromNoStart date YYYY-MM-DD (default: 7 days ago)
date_toNoEnd date YYYY-MM-DD (default: today)
min_magnitudeNoMinimum earthquake magnitude (for earthquakes dataset)
max_resultsNoMaximum results to return (default: 10)

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of disclosure. It states the tool fetches data and returns structured data but omits details about rate limits, authentication requirements, or any potential side effects. It adequately describes the retrieval nature but lacks depth.

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?

The description is concise with two well-structured sentences. The first sentence defines the tool's purpose, and the second adds key details (datasets, filtering, output type). It is efficient but could be slightly tighter by integrating the dataset list into the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (9 parameters, no output schema), the description covers the main capabilities: datasets, geographic filtering, and data readiness. However, it lacks details on the return format for each dataset, which would be helpful given the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds minimal value beyond the schema by summarizing capabilities like geographic filtering, but does not elaborate on parameter formats or dependencies. The schema already provides clear parameter descriptions.

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?

The description clearly states the tool fetches real-time scientific data from major APIs and lists specific datasets (earthquakes, air_quality, etc.), providing a specific verb and resource that distinguishes it from sibling tools like analytics or compound_lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for fetching scientific data with geographic filtering but lacks explicit guidance on when to use this tool versus alternatives or any when-not-to-use conditions. No exclusions or prerequisites are mentioned.

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

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct scientific domain: analytics (usage/revenue), compound_lookup (chemistry), gpu_spot_prices (cloud compute), literature_search (papers), patent_prior_art_search (patents), and scientific_data (real-time data). No overlap in purpose ensures agents can clearly differentiate.

Naming Consistency3/5

Names use underscores but mix noun phrases (analytics, gpu_spot_prices, scientific_data) with noun-verb constructs (compound_lookup, literature_search, patent_prior_art_search). Lacks a uniform verb_noun pattern, causing minor inconsistency.

Tool Count4/5

With 6 tools, the server covers a broad range of scientific tasks without overloading. The count feels appropriate for a general-purpose scientific toolkit, though a few more specialized tools could be justified.

Completeness3/5

The tool surface touches analytics, chemistry, compute pricing, literature, patents, and real-time data, but lacks common scientific operations like sequence search, unit conversion, or molecular modeling. Some gaps for comprehensive scientific workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    62 real-time data tools for AI agents via MCP. Finance, crypto, FMCSA, sanctions, courts, weather, vehicles, cybersecurity. One bearer token, one bill. Free tier available.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    55+ pay-per-call tools for AI agents over MCP: live telemetry, blockchain/on-chain checks, environmental, transit, finance, and network utilities. No API key or signup — agents pay per request with x402 USDC micropayments (Base and Solana).
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    One MCP server that gives AI agents nine live data tools — company hiring signals, SEC filings, academic papers, GitHub repos, Hacker News, Stack Overflow, clinical trials, Federal Register, and global news — all as flat, citation-ready JSON with pay-per-result billing.

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/shomechakraborty/mcp-scientific-tools'

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