Skip to main content
Glama

RSpace MCP Server

Official
by rspace-os

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
RSPACE_URLYesRSpace URL (e.g. https://community.researchspace.com)
RSPACE_API_KEYYesYour RSpace API key

Schema

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Tools

Functions exposed to the LLM to take actions

NameDescription
status

System health check - determines if RSpace server is accessible and running

Usage: Call this first to verify connectivity before other operations Returns: Status message from RSpace server

get_documents

Retrieves recent RSpace documents with pagination

Usage: Get overview of recent documents for browsing/selection Limit: Maximum 200 documents per call for performance Returns: List of document metadata (not full content)

get_single_Rspace_document

Retrieves complete content of a single document

Usage: Get full document text for reading/analysis Parameters: doc_id can be numeric ID or string globalId (e.g., "SD12345") Returns: Full document with concatenated field content

update_document

Updates existing RSpace document content and metadata

Usage: Modify document name, tags, or field content Fields format: [{"id": field_id, "content": "new HTML content"}] Returns: Updated document information

search_documents

Generic search tool for RSpace documents with flexible search options

Usage: Search across all your RSpace documents using various criteria

Parameters:

  • query: The search term(s) to look for

  • search_type: "simple" for basic search, "advanced" for multi-criteria search

  • query_types: List of search types to use (for advanced search):

    • "global": Search across all document content and metadata

    • "fullText": Search within document text content

    • "tag": Search by document tags

    • "name": Search by document names/titles

    • "created": Search by creation date (use ISO format like "2024-01-01")

    • "lastModified": Search by modification date

    • "form": Search by form type

    • "attachment": Search by attachments

  • operator: "and" (all criteria must match) or "or" (any criteria can match)

  • order_by: Sort results by field (e.g., "lastModified desc", "name asc")

  • page_number: Page number for pagination (0-based)

  • page_size: Number of results per page (max 200)

  • include_content: Whether to fetch full document content (slower but more complete)

Returns: Dictionary with search results and metadata

Examples:

  • Simple text search: search_documents("PCR protocol")

  • Search by tags: search_documents("experiment", search_type="advanced", query_types=["tag"])

  • Multi-criteria search: search_documents("DNA", search_type="advanced", query_types=["fullText", "tag"], operator="or")

search_by_tags

Search documents by specific tags

Usage: Find documents tagged with specific keywords

Parameters:

  • tags: List of tags to search for

  • operator: "and" (document must have all tags) or "or" (document can have any tag)

  • order_by: Sort results by field

  • page_number: Page number for pagination

  • page_size: Number of results per page

Returns: Dictionary with search results

Example: search_by_tags(["PCR", "protocol"], operator="and")

search_recent_documents

Search for recently modified documents

Usage: Find documents modified within a specific timeframe

Parameters:

  • days_back: Number of days to look back

  • query: Optional text search within recent documents

  • page_size: Number of results to return

Returns: Dictionary with recent documents

Example: search_recent_documents(7, "experiment")

find_documents_by_content

Advanced content-based document search

Usage: Find documents containing specific content terms

Parameters:

  • content_terms: List of terms that should appear in document content

  • operator: "and" (all terms must appear) or "or" (any term can appear)

  • exclude_terms: Optional list of terms to exclude from results

  • order_by: Sort results by field

  • page_size: Number of results to return

Returns: Dictionary with search results

Example: find_documents_by_content(["DNA", "extraction"], operator="and")

createNewNotebook

Creates a new electronic lab notebook

Usage: Organize related experiments/entries under a single notebook Returns: Created notebook information including ID for adding entries

createNotebookEntry

Adds a new entry to an existing notebook

Usage: Add experimental procedures, results, or observations to a notebook Content: Supports both HTML and plain text formatting Returns: Created entry information

tagDocumentOrNotebookEntry

Adds tags to documents for organization and searchability

Usage: Categorize documents by project, experiment type, etc. Tags: Use consistent naming for better organization Returns: Updated document with new tags

renameDocumentOrNotebookEntry

Changes the name/title of a document or notebook entry

Usage: Update document titles for better organization Returns: Updated document information

get_forms

Lists available custom forms for structured document creation

Usage: Browse available templates before creating structured documents Filtering: Use query parameter to search form names/descriptions Returns: Paginated list of form metadata

get_form

Retrieves detailed information about a specific form template

Usage: Examine form structure before creating documents or new forms Returns: Complete form definition including field specifications

create_form

Creates a new custom form template for structured data entry

Usage: Define reusable templates for experiments, protocols, reports Fields structure: [ { "name": "Field Name", "type": "String|Text|Number|Radio|Date|Choice", "mandatory": True/False, "defaultValue": "optional default" } ] Returns: Created form information (form will be in NEW state)

publish_form

Makes a form available for creating documents

Usage: Activate form after creation/modification Note: Forms must be published before they can be used for document creation Returns: Updated form status

unpublish_form

Hides a form from document creation interface

Usage: Temporarily disable forms without deletion Returns: Updated form status

share_form

Shares form with user's groups for collaborative use

Usage: Make custom forms available to team members Returns: Updated sharing status

unshare_form

Removes form sharing with groups

Usage: Make form private again Returns: Updated sharing status

delete_form

Permanently deletes a form template

Usage: Remove unused forms (only works for forms in NEW state) Warning: This operation cannot be undone Returns: Deletion confirmation

create_document_from_form

Creates a structured document using a form template

Usage: Generate documents with predefined structure and validation Fields: Pre-populate form fields with initial data Returns: Created document information

getAuditEvents

Retrieves audit trail of all actions performed in RSpace

Usage: Monitor document access, modifications, and user activity Filtering options:

  • username: Filter by specific user actions

  • global_id: Filter by specific document

  • date_from/date_to: ISO8601 format date range

Returns: Chronological list of system events

downloadFile

Downloads file attachments from RSpace documents

Usage: Retrieve images, data files, or other attachments Parameters:

  • file_id: Numeric ID of the file attachment

  • file_path: Local filesystem path where file should be saved

Returns: Download status and file information

uploadAndAttachFile

Uploads a file to RSpace and attaches it to a document as a proper file attachment

Usage: One-step process to upload any file and attach it to an RSpace document File types: Supports all file types (images, PDFs, data files, protocols, etc.) Attachment: Creates proper RSpace file attachment, not just a link

Parameters:

  • document_id: RSpace document ID (numeric or global ID like "SD12345")

  • file_path: Path to the file to upload (e.g., "data/results.pdf")

  • caption: Optional caption that appears with the attachment

  • description: Optional description for the uploaded file

Returns: Upload confirmation and document update information

create_sample

Creates a new sample in the inventory system

Usage: Register new samples with metadata and quantity tracking Subsamples: Automatically creates specified number of subsample aliquots Quantity: Tracks total amount with specified units (ml, mg, μl, etc.)

Returns: Created sample information including generated subsample IDs

get_sample

Retrieves complete information about a specific sample

Usage: Get detailed sample metadata, location, and subsample information Parameters: sample_id can be numeric ID or global ID (e.g., "SA12345") Returns: Full sample details including all subsamples

list_samples

Lists samples in the inventory with pagination and sorting

Usage: Browse sample collection, find recent additions Sorting: Options include "lastModified", "name", "created" Returns: Paginated list of sample metadata

duplicate_sample

Creates an exact copy of an existing sample

Usage: Replicate samples for parallel experiments or backup Returns: New sample information with fresh ID and subsamples

split_subsample

Divides a subsample into multiple new subsamples

Usage: Create aliquots for distribution or different experiments Quantity: If specified, each new subsample gets this amount Returns: Information about newly created subsamples

add_note_to_subsample

Adds annotations or observations to a specific subsample

Usage: Record experimental notes, observations, or handling instructions Returns: Updated subsample information with new note

search_inventory

Searches across all inventory items using text query

Usage: Find samples, containers, or templates by name, tags, or description Result types: 'SAMPLE', 'SUBSAMPLE', 'CONTAINER', 'TEMPLATE' (or None for all) Returns: Matching items with relevance scoring

create_list_container

Creates a simple list-based container for organizing inventory

Usage: Create folders, boxes, or other containers without specific positioning Storage permissions: Configure what types of items can be stored Hierarchy: Optionally nest within another container

Returns: Created container information with storage settings

create_grid_container

Creates a grid-based container with specific positioning

Usage: Create microplates, freezer boxes, or other position-specific storage Dimensions: Define exact grid size (e.g., 8x12 for 96-well plate) Positioning: Items placed at specific coordinates (row, column)

Returns: Created container information with grid specifications

get_container

Retrieves container information with optional content listing

Usage: Examine container properties and optionally see what's inside Performance: Set include_content=False for faster queries on large containers Returns: Container details and optionally contained items

list_containers

Lists top-level containers (not nested within other containers)

Usage: Browse main container organization structure Returns: Paginated list of root-level containers

get_workbenches

Retrieves all available workbenches (virtual workspaces)

Usage: Find available workspaces for organizing current work Workbenches: Special containers representing physical or logical workspaces Returns: List of all workbench containers

move_items_to_list_container

Moves multiple items to a list-based container

Usage: Organize items in simple containers without specific positioning Items: Can move both samples/subsamples and other containers Returns: Success status and results for each moved item

move_items_to_grid_container_by_row

Moves items to grid container, filling positions row by row

Usage: Systematic filling of plates, boxes, or other gridded containers Auto-positioning: Automatically calculates next available positions Dimensions: Auto-detected from container if not provided

Returns: Success status and final positions of moved items

move_items_to_grid_container_by_column

Moves items to grid container, filling positions column by column

Usage: Alternative filling pattern for specific experimental layouts Auto-positioning: Fills down columns before moving to next column Returns: Success status and final positions of moved items

move_items_to_specific_grid_locations

Places items at specific coordinates within a grid container

Usage: Precise positioning for experimental layouts or protocols Coordinates: Each item gets an exact (row, column) position Validation: Ensures equal number of items and positions

Returns: Success status and confirmation of final positions

create_sample_template

Creates a reusable template for sample creation

Usage: Standardize sample creation with predefined fields and validation Template data: Define field structure, default values, and constraints Returns: Created template information for future sample generation

get_sample_template

Retrieves detailed information about a sample template

Usage: Examine template structure before using for sample creation Returns: Complete template definition including field specifications

list_sample_templates

Lists available sample templates for reuse

Usage: Browse existing templates before creating new samples Returns: Paginated list of template metadata

rename_inventory_item

Changes the name of any inventory item

Usage: Rename samples, subsamples, containers, or templates Universal: Works with any inventory item type Returns: Updated item information with new name

add_extra_fields_to_item

Adds custom metadata fields to inventory items

Usage: Extend items with experiment-specific or project-specific data Field format: [{"name": "Field Name", "type": "text|number", "content": "value"}] Types: 'text' for strings, 'number' for numeric values

Returns: Updated item with new custom fields

generate_barcode

Generates scannable barcodes for inventory items

Usage: Create physical labels for sample tracking and identification Types: 'BARCODE' for standard linear barcodes, 'QR' for QR codes Returns: Binary barcode image data for printing or display

get_container_summary

Retrieves container metadata without content for fast queries

Usage: Quick container information lookup without performance impact Performance: Avoids loading large content lists for better response times Returns: Container metadata only (name, type, capacity, etc.)

get_container_contents_only

Retrieves only the items stored in a container

Usage: Get container contents without metadata overhead Performance: Focused query for container content analysis Returns: List of contained items with minimal metadata

bulk_create_samples

Creates multiple samples efficiently in a single operation

Usage: High-performance sample creation for large datasets Performance: Much faster than individual create_sample calls Format: List of sample definition dictionaries

Note: Implementation should use batch API endpoints when available Returns: Results for all created samples with error handling

get_recent_samples_summary

Retrieves recent samples with minimal data for dashboard views

Usage: Quick overview of recent activity without full sample details Performance: Optimized for dashboard and summary displays Filtering: Configurable time window and result count

Returns: Lightweight sample list with essential information only

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/rspace-os/rspace-mcp'

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