Page3/8
Tool Integration & Advanced Features · Page 1 of 1
Advanced MCP Capabilities
Tool Integration in MCP
Beyond Simple Tools
MCP servers provide more than just tools:
1. Tools - Function execution
2. Resources - Data/files
3. Prompts - Pre-written instructions
4. Sampling - LLM inference
Resources
Expose data without exposing internals:
@server.resource("file")
def read_file(uri: str):
# uri format: "file:///path/to/file"
path = uri.replace("file://", "")
with open(path, 'r') as f:
return f.read()
@server.resource("document")
def get_document(doc_id: str):
return db.documents.get(doc_id)
Client can access without knowing implementation!
Prompts
Pre-structured prompts for common tasks:
@server.prompt("summarize")
def summarize_prompt(text: str, style: str = "concise"):
return f"""
Summarize the following text in {style} style:
{text}
Summary:
"""
@server.prompt("test_generator")
def generate_tests_prompt(code: str):
return f"""
Generate unit tests for this code:
{code}
Tests:
"""
Tool Chaining
MCP servers can call other tools:
@server.tool("analyze_data")
def analyze(file_path: str):
# This tool uses other tools
data = fetch_file(file_path) # Tool 1
stats = calculate_stats(data) # Tool 2
report = format_report(stats) # Tool 3
return report
Streaming Results
For long-running operations:
@server.tool("long_operation", streaming=True)
def process_large_dataset(dataset: str):
for chunk in chunks(dataset):
result = process(chunk)
yield result # Send partial results
# Client receives results as they arrive!
Batch Operations
Execute multiple tool calls efficiently:
@server.tool("batch_search")
def search_multiple(queries: list[str]):
results = []
for query in queries:
results.append(search(query))
return results
# More efficient than calling search() multiple times
Tool Combinations
Server can combine tools for complex tasks:
@server.tool("research")
def research_topic(topic: str):
# Combine multiple tools
papers = search_arxiv(topic)
summaries = [summarize(p) for p in papers]
synthesis = synthesize_findings(summaries)
return synthesis
main.py
Loading...
OUTPUT
▶Click "Run Code" to execute…